Файл карты в Интеграции для LogicApp в Azure - PullRequest
0 голосов
/ 05 января 2019

Получите следующий XML-код в результате выполнения функции HTTP GET от поставщика B2B.

<Invoices xmlns="http://gateway.com/schemas/Invoices" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://gateway..com/schemas/Invoices Invoices.xsd">
   <DocumentInfo>
      <DocType>INVOICES</DocType>
      <DocVersion>2.0</DocVersion>
   </DocumentInfo>
   <Header>
      <StartDate>2018-12-01T00:00:00+01:00</StartDate>
      <EndDate>2019-01-03T00:00:00+01:00</EndDate>
   </Header>
   <Documents>
      <Invoice InvoiceId="RP82807" InvoiceDate="2019-01-02T00:00:00+01:00" DocumentType="IN" RefDocId="FT34532" RefDocType="ORDER" SystemId="10" HasPDFImage="0" />
      <Invoice InvoiceId="T609881" InvoiceDate="2018-12-31T00:00:00+01:00" DocumentType="IN" RefDocId="FT39339" RefDocType="ORDER" SystemId="0" HasPDFImage="0" />
   </Documents>
</Invoices>

На основании этой статьи Я создал файл ликвидной карты, чтобы получить список InvoiceIds:

{
"Invoice": "{{content.Documents.Invoice}}"
}

При использовании его в LogicApp в конвертере XML-> Json был получен следующий результат:

{
    "Invoice": ""
} 

Я также пробовал это как жидкий файл:

{
"Invoice": "{{content.Invoices.Documents}}"
} 

и это:

{
"Invoice": "{{content.Invoices.Documents.Invoice}}"
}

с тем же результатом. Можете ли вы дать мне совет, что я делаю неправильно?

1 Ответ

0 голосов
/ 07 января 2019

Я пытался перенести часть вашего xml-файла в json с этой картой:

{
"DocType":"{{content.DocumentInfo.DocType}}",
"Invoice":"{{content.Documents.Invoice}}"
}

И получим вывод:

{
"DocType": "INVOICES",
"Invoice": ""
}

Таким образом, это означает, что я могу получить DocType , но не могу получить свойства Invoice , поэтому я думаю, что карта Liquid не поддерживает формат XML. Может быть, вы могли бы изменить это так:

<Invoice>
<InvoiceId>T609881</InvoiceId>
  <InvoiceDate>2018-12-31T00:00:00+01:00</InvoiceDate>
  <DocumentType>IN</DocumentType>
  <RefDocId>FT39339</RefDocId>
</Invoice>

Это сработает, или вы можете перейти к Liquid reference , чтобы проверить, есть ли какие-либо методы для сопоставления свойств.

enter image description here

Примечание: то, что вы хотите сейчас, привязка к атрибутам Xml в настоящее время не поддерживается. Вы можете сослаться на этот ответ .

Если у вас остались другие вопросы, пожалуйста, дайте мне знать.

ОБНОВЛЕНИЕ: Вы все еще можете сделать это с помощью приложения логики. Например, я использовал FTP-коннектор для получения содержимого XML-файла, а затем создал json с "json (xml (body ('Get_file_content')))) "выражение. enter image description here

И это результат. enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...