¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Problema com GET_ENTITYSET e CREATE_ENTITY: Solução para o erro de espera do elemento '{http://www.w3.org/2005/Atom}entry'

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 35 Vistas
0
Cargando...

Olá,

Vejo que algumas das mensagens estão discutindo o mesmo problema, mas revisei a solução que foi discutida e na verdade não me ajudou. Implementei o GET_ENTITYSET para obter meus campos e o utilizei como uma solicitação para minha operação POST no mesmo EntitySet para testar minha lógica CREATE_ENTITY. No entanto, durante a solicitação, me deparo com o problema de que o sistema está esperando o elemento '{http://www.w3.org/2005/Atom}entry'.

Aqui está minha solicitação XML colada

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"

xml:base="******/">

<id>************</id>
<title type="text">TagPrintSet</title>
TagPrintSet" rel="self" title="TagPrintSet"/>
<entry>
<id>http://*******(Tanum='0000123455',Lgnum='811',Ldest='11M1',Zdetag='001')</id>
<title type="text">TagPrintSet(Tanum='0000123455',Lgnum='811',Ldest='11M1',Zdetag='001')</title>
<updated>2019-01-29T04:54:18Z</updated>
<category term="ZMWM_PICKLIST_SRV.TagPrint" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
<link href="TagPrintSet(Tanum='0000123455',Lgnum='811',Ldest='11M1',Zdetag='001')" rel="self" title="TagPrint"/>
<content type="application/xml">
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
<d:Tanum>0000123455</d:Tanum>
<d:Lgnum>811</d:Lgnum>
<d:Ldest>11M1</d:Ldest>
<d:Zdetag>001</d:Zdetag>
</m:properties>
</content>
</entry>
</feed>

Obrigado,

Karthik

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

O método CREATE_ENTITY apenas cria um único elemento no conjunto de entidades.

Portanto, você deve implementar o método GET_ENTITY para recuperar um único elemento e utilizá-lo como entrada para sua solicitação POST.

Se uma ou mais respostas responderam à sua pergunta, por favor, clique em "? Aceitar"

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Posso fazer mais uma pergunta? Se eu tiver uma tabela interna (apenas uma tabela interna sem outros campos) como entrada para o meu módulo de funções, é necessário usar DEEP_ENTITY_SET? Vejo no blog que todos os exemplos de DEEP_ENTITY_SET falam sobre associação de cabeçalho/item. Mas aqui não tenho nenhum cabeçalho/linha de item.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Incrível! Funciona. Obrigado Fischer.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Karthik,

Isso ocorre porque, embora você tenha especificado um filtro que presume conter todos os quatro campos-chave da sua entidade, você ainda realiza uma solicitação GET no recurso /sap/opu/odata/SAP/ZMWM_SAMPLE/TagPrintSet.

Como resultado, o GET_ENTITYSET é chamado e, se estiver implementado, você poderá recuperar o filtro e procurar os itens para os quais o filtro se aplica.

Para obter um único item, você deve especificar a chave entre parênteses da seguinte maneira:

/sap/opu/odata/SAP/ZMWM_SAMPLE/TagPrintSet(f1='11111',f2='811',f3='11M1',f4='1')

Neste caso, o método GET_ENTITY será chamado.

Sugiro que você implemente tanto o GET_ENTITYSET quanto o método GET_ENTITY.

Então você pode realizar uma solicitação GET no conjunto de entidades, obter uma lista e selecionar uma única entrada da carga útil.

        https://sapes5.sapdevcenter.com/sap/opu/odata/iwbep/GWSAMPLE_BASIC/SalesOrderLineItemSet(SalesOrderID='0500000001',ItemPosition='0000000010')
    

Retornará a seguinte resposta (uma única entrada)

Enquanto

        https://sapes5.sapdevcenter.com/sap/opu/odata/iwbep/GWSAMPLE_BASIC/SalesOrderLineItemSet?$filter=SalesOrderID%20eq%20'0500000001'%20and%20ItemPosition%20eq%20'0000000010'
    

Retorna uma lista com apenas uma entrada, mas uma lista (um feed em termos ATOM).

Para mais detalhes sobre como implementar GET_ENTITY e GET_ENTITYSET, consulte o seguinte blog:

https://blogs.sap.com/2016/05/31/odata-service-development-with-sap-gateway-code-based-service-devel...

Cumprimentos,

Andre

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?