on 2019 Jun 26 7:09 PM
Estou usando a entidade "JournalEntries" para obter as transações contábeis.
Eu gostaria de filtrar apenas as transações contábeis referentes à uma conta específica. Esta informação está na collection "JournalEntryLines".
Tentei a seguinte query OData: "JournalEntries?$filter=JournalEntryLines/ShortName eq '1.01.01.01.01'"
E me retornou o erro: "Invalid navigation property:JournalEntryLines"
Tentei usando $expand e o erro foi o mesmo
Tentei usando $crossjoin, mas não encontrei um campo que permita relacionar JournalEntries com JournalEntryLines, por isso me retornou um produto cartesiano.
Sei que esta consulta pode ser feita através de uma query direta ao Hana, mas gostaria de manter tudo através da Service Layer.
Request clarification before answering.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thiago, obrigado pelo retorno !
Executei um teste com esta solução e acabei chegando ao mesmo resultado do "plano cartesiano"
Veja a transação:
GET https://xxx.xxx.xxx.xxx:ppp/b1s/v1/QueryService_PostQuery HTTP/1.1
{
"QueryPath": "$crossjoin(JournalEntries,JournalEntries/JournalEntryLines)",
"QueryOption": "$expand=JournalEntries($select=Memo),JournalEntries/JournalEntryLines($select=ShortName)&$filter=JdtNum eq 1"
}
Eu entendo que para usar o cross join corretamente, a entidade JournalEntryLines precisaria ter ao menos um campo para identificar unicamente um registro em JournalEntries.
Não encontrei nenhum campo nas entidades JournalEntry e JournalEntryLine que estabeleçam esta relação.
A chamada acima funcionou, porém retornou mais registros que o necessário.
Como a propriedade JournalEntryLines é uma coleção, tentei da seguinte forma:
GET https://xxx.xxx.xxx.xxx:ppp/b1s/v1/JournalEntries?$filter=JournalEntryLines/ShortName%20eq%20'V10000' HTTP/1.1
Com o seguinte retorno:
"error" : {
"code" : -1000,
"message" : {
"lang" : "en-us",
"value" : "Property 'JournalEntryLines/ShortName' of 'JournalEntry'is invalid"
}
}
Também tentei com $expand:
GET https://xxx.xxx.xxx.xxx:ppp/b1s/v1/JournalEntries?$expand=JournalEntryLines&$filter=JournalEntryLines/ShortName%20eq%20'V10000' HTTP/1.1
Com o retorno:
"error" : {
"code" : -1000,
"message" : {
"lang" : "en-us",
"value" : "Cannot expand invalid navigation property 'JournalEntryLines' for entity type 'JournalEntry'"
}
}
Será que há alguma outra forma?
User | Count |
---|---|
95 | |
39 | |
8 | |
5 | |
3 | |
3 | |
3 | |
3 | |
2 | |
2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.