Avalados por :
Esta é oficialmente a tão esperada parte III da série que começou com Comunicação SAP EDI/IDoc no CPI utilizando Bundling e Menos Artefatos de Mapeamento , e Comunicação SAP EDI/IDoc no CPI utilizando Bundling e Menos Artefatos de Mapeamento Parte II que aborda o ponto problemático para minha abordagem que eu sabia desde o início. Não há uma interface de usuário para gerenciar dados no Diretório de Parceiros, então tive que recorrer ao Postman como minha principal ferramenta... ?? Após várias semanas de foco intenso ( para desgosto da minha esposa, mas agora ela está feliz que tenha terminado ), criei um aplicativo UI5 de estilo livre para lidar com quase todos os parâmetros de manutenção necessários em tempo de execução. O foco intenso necessário se deve ao fato de que sou um ABAPer, JAVAer, CPIer, XSLTer, mas tenho pouca experiência em UI5, e quando tive foi há anos. Cheguei até a fornecer traduções para espanhol, francês e alemão. Usei o Google Translate, então algumas traduções, pontuações, maiúsculas ( por mim ), juntamente com algumas referências contextuais podem estar incorretas... Devo traduzir "Carriage Return" literalmente ou tem outro nome em outros idiomas?
Tentarei contar como se desenvolveram as últimas três semanas de diversão em detalhes, mas com a intenção de arrancar uma risada ou duas. Nem mesmo escrevi uma única linha de código antes que a dor começasse porque meu espaço de desenvolvimento no BAS se intitula "MyDevSpaceV3"... isso por si só pode refletir.
Minha primeira tarefa foi obter alguns dados básicos para mostrar na tela, então tive que começar assimilando a extensão do Kit de Demonstração do SAP UI5. Existe uma maneira mais fácil de entender cada um dos controles ou objetos sem ter que assimilar a documentação impressa... talvez eu possa fazer isso ao estilo Matrix? Depois de ler bastante sobre propriedades, elementos, listas, compostos e ligações de expressão, com não tanto entendimento, eu estava pronto para começar. Queria usar as visualizações XML declarativas tanto quanto possível, mas o primeiro obstáculo veio rapidamente devido a como o Diretório de Parceiros armazena os dados, e eu queria fazer com que o aplicativo fosse configurável para a visualização própria. Não é possível usar a sintaxe de ligação dinâmica (
dois campos-chave
) para um modelo OData, então tive que ligar os elementos em tempo de execução com o bom e velho JavaScript. Precisava revisar as ligações mais uma vez para entender a sintaxe necessária e depois de um pouco de experimentação e sorte consegui fazer com que as informações fossem exibidas. Durante o período de revisão houve bastante confusão porque comecei a ver coisas como ContextBinding e BindingContext (há outras abstrações questionáveis e inconsistências). Devo entender a diferença apenas porque a ordem das palavras está invertida?
Dar um pequeno soco no ar
??
e passar a tentar atualizar alguns dados fazendo uso da ligação bidirecional. Durante a primeira tarefa, notei erros no console sobre problemas com "false" e "true" atribuídos à propriedade de estado de um interruptor em vez do booleano adequado... entra em jogo a ligação de expressão (breve) para o resgate. O que me faltou em um comentário na documentação que deveria ter sido em negrito, mas não estava, é que a ligação de expressão força automaticamente uma ligação unidirecional. Se você ver a interface do usuário, isso não vai funcionar, já que quase metade dos campos são interruptores. Supostamente isso funciona com a ligação de propriedade, mas não consegui fazê-lo funcionar, e depois de procurar encontrei uma opção com ligação composta... um StringyBoolean nasceu. Levou um pouco de experimentação, mas consegui fazer com que funcionasse como esperado para que o modelo OData refletisse as alterações pendentes quando a interface do usuário era atualizada!
??
Aqui vamos nós, prontos para enviar essa atualização para o backend... não tão rápido porque o primeiro grande problema se apresenta. Consigo ler dados, por que não consigo atualizar os dados? Esse período durou boas 36-48 horas (
em sua maioria um borrão e MUITOS insultos
), mas fiz avanços quando finalmente decidi testar um navegador diferente. Sou um usuário do Firefox de longa data, mas precisava do Chrome para essa tarefa. Qual era o culpado? Cada modelo OData instanciado com o manifesto tem automaticamente metadados recuperados com um parâmetro de URL adicionado - ?sap-language=XX. Ok, mas por que isso é um problema? O problema é porque a API do Diretório de Parceiros retorna apenas um documento
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute