Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Agora vamos testar a integração do Cadastro do Produto: Cadastro do Produto | "ITEM" (MATA010)

Agora vamos para para nossa primeira movimentação na integração que é a Requisição ao Armazém (MATA105)

O adapter da Requisição é o "REQUEST" (MATA105). Abaixo temos o exemplo do Json e as Tags mais importantes:

Produto:

Microsiga Protheus®

Ambiente:Estoque e Custos (SIGAEST)

Ocorrência:

Como realizar a integração via Mensagem Única (EAI) Protheus x PIMS?

Passo a passo:
Dica
titleImportante
Deck of Cards
idProtheus x Quirons

O SOAPUI é uma ferramenta de mercado onde conseguimos simular o envio do Xml/Json na integração via Mensagem Única, simulando outros sistemas integrando com o Protheus.
Ou seja, ao invés de termos que instalar o outro sistema e aprender como fazer o processo nele, nós pegamos um Xml/Json e enviamos para o Protheus usando esta ferramenta.

Link para baixar o Soap: https://www.soapui.org/downloads/latest-release/

Veja detalhes sobra o uso e a configuração do SOAPUI neste vídeo: Configurando o SOAPUI

Card
label1. Configurações Iniciais

Antes de iniciarmos os testes, existem configurações necessárias, abaixo detalhamos cada uma delas:

Deck of Cards
idConfig Iniciais
Card
label1.1. Criando os Web Services

A comunicação do PIMS com o Protheus acontece através de um Web Service, com base na documentação: Integração por Mensagem única via SoapUI

Veja como configurar e testar os Web Services em: Configuração e Teste do Web Service

Card
label2. Configurando o SOAP UI
Dica
titleInformação extra
  • A API RESTful é uma interface que dois sistemas usam para trocar informações de forma segura pela internet.
  • Os Métodos existentes em uma API são como as ações que esta API permite que sejam realizadas através dela:
    • DELETE: Método específico para remoção de dados, ou seja, permite deletar dados através da API;
    • GET: Método para uma requisição que busca dados, ou seja, ele é usado para consultar dados através da API, não altera informações, apenas as carrega;
    • POST: Método para uma requisição que envia dados, ou seja, é usado para inserir informações através da API;
    • PUT: Método para atualização de dados, pode ser utilizado quando se deseja atualizar uma informação já existente. 
Card
label03. Informações Complementares

Nesta guia, gostaria de passar informações importantes do processo de integração que podem te ajudar na análise das ocorrências e na configuração das integrações:

Agora vamos testar a integração do Local de Estoque (Armazém): Local de Estoque | "WAREHOUSE" (AGRA045)

Vamos agora para o cadastro principal necessário para a integração que é o Cadastro de Produto (MATA010).

O adapter do Cadastro de Produto é o "ITEM" (MATA010). Abaixo temos o exemplo do Json e as Tags mais importantes:

Card
label04. Testando o Recebimento

Vamos chamar aqui de Recebimento as mensagens que são enviadas do Quirons para o Protheus. Precisamos seguir uma sequencia para podermos realizar as integrações:

 

Agora vamos testar a integração da Unidade de Medida: Unidade de Medida | "UNITOFMEASURE" (QIEA030)

Outro cadastro básico necessário para a integração é o do local de estoque (Armazém).

O adapter do Armazém é o "WAREHOUSE" (AGRA045). Abaixo temos o exemplo do Json e as Tags mais importantes:

Deck of Cards
idRecebimento de Mensagens

Para que possamos realizar a integração do Produto e, posteriormente, das requisições e movimentações dele, é preciso termos integrado a Unidade de Medida.

O adapter da Unidade de Medida é o "UNITOFMEASURE" (QIEA030). Abaixo temos o exemplo do Json e as Tags mais importantes:
Card
label1. Unidade de Medida
Expandir
titleExemplo de Json
Bloco de código
titleUNITOFMEASURE
{
   "Header":{
      "ProductVersion":"12",
      "BranchId":"01",
      "Type":"BusinessMessage",
      "ProductName":"PROTHEUS",
      "BusinessUnit":"",
      "DeliveryType":"sync",
      "Transaction":"UNITOFMEASURE",
      "StandardVersion":"1.000",
      "Version":"2.002",
      "UUID":"99b01fde-72a2-4c27-afbc-fe64e6afe94e",
      "SubType":"event",
      "Enterprise":"",
      "Event":"upsert",
      "CompanyId":"99",
      "GeneratedOn":"2022-04-20T13:27:56Z",
      "SourceApplication":"QUIRONS"
   },
   "Content":{
      "Code":"Q5",
      "ShortName":"UNIDADE M",
      "InternalId":"99|01|Q5",
      "Description":"UNIDADE QUIRONS"
   }
}
Expandir
titlePrincipais Tags
TagDescrição
BranchIdFilial do Protheus
DeliveryTypeTipo de Sincronização da Mensagem
TransactionNome da Mensagem que está enviando
StandardVersionVersão do Adapter que está utilizando
UUIDID único da mensagem 
EventTipo de Evento, sendo que na inclusão de um registro será "upsert"
CompanyIdCódigo da Empresa do Protheus. Ex: "99" ou "01"
GeneratedOnData que será gravada como inclusão do registro
SourceApplicationNome da aplicação a ser gravada no De/Para
CodeCódigo da Unidade de Medida (AH_UNIMED)
ShortNameNome da Unidade de Medida (AH_UMRES)
InternalIdId de identificação do Registro (XXF_EXTVAL)
DescriptionDescrição em Português da Unidad de Medida (AH_DESCPO)
Card
label2. Armazém
Expandir
titleExemplo de Json
Bloco de código
titleWAREHOUSE
{
   "Header":{
      "ProductVersion":"12",
      "BranchId":"01",
      "Type":"BusinessMessage",
      "ProductName":"PROTHEUS",
      "BusinessUnit":"",
      "DeliveryType":"sync",
      "Transaction":"WAREHOUSE",
      "StandardVersion":"1.000",
      "Version":"1.000",
      "UUID":"4848af38-5962-d1c1-faeb-cfad85908058",
      "SubType":"event",
      "Enterprise":"",
      "Event":"upsert",
      "CompanyId":"99",
      "GeneratedOn":"2022-04-20T13:44:20Z",
      "SourceApplication":"QUIRONS"
   },
   "Content":{
      "BranchId":"01",
      "Code":"33",
      "Active":"true",
      "Type":"1",
      "Purpose":1,
      "WarehouseClassification":"3",
      "Event":"upsert",
      "InternalId":"99|01|33",
      "WorkCenterCode":"      ",
      "CompanyId":"99",
      "StandardWarehouse":2,
      "Entity":"WAREHOUSE",
      "CompanyinternalId":"99|01",
      "Description":"QUIRONS"
   }
}
Expandir
titlePrincipais Tags
TagDescrição
BranchIdFilial do Protheus
DeliveryTypeTipo de Sincronização da Mensagem
TransactionNome da Mensagem que está enviando
StandardVersionVersão do Adapter que está utilizando
UUIDID único da mensagem 
EventTipo de Evento, sendo que na inclusão de um registro será "upsert"
CompanyIdCódigo da Empresa do Protheus. Ex: "99" ou "01"
GeneratedOnData que será gravada como inclusão do registro
SourceApplicationNome da aplicação a ser gravada no De/Para
CodeCódigo do Armazém (NNR_CODIGO)
TypeTipo do Armazém (NNR_TIPO)
InternalIdId de identificação do Registro (XXF_EXTVAL)
DescriptionDescrição do Armazém (NNR_DESCRI)
Card
label3. Item (Produto)
Expandir
titleExemplo de Json
Bloco de código
titleITEM
{
   "Header":{
      "BusinessUnit":"",
      "ProductName":"PROTHEUS",
      "Transaction":"ITEM",
      "Version":"4.005",
      "UUID":"989bd96b-e333-0b74-f6da-2ac8d4c7f625",
      "Event":"upsert",
      "CompanyId":"99",
      "GeneratedOn":"2022-04-20T13:49:25Z",
      "BranchId":"01",
      "DeliveryType":"sync",
      "Type":"BusinessMessage",
      "CompanySharingMode":"",
      "BusinessUnitySharingMode":"",
      "StandardVersion":"1.000",
      "BranchSharingMode":"",
      "SubType":"event",
      "Enterprise":"",
      "SourceApplication":"QUIRONS",
      "ProductVersion":"12"
   },
   "Content":{
      "ItemStatus":"2",
      "StandardWarehouseInternalId":"99|01|33",
      "ItemTitle":"                                                                                                    ",
      "ItemWidth":"0",
      "CompanyId":"99",
      "UnitOfMeasureCode":"Q5",
      "Code":"QUIRONS01",
      "FiscalInformation":{
         "CsllAliquot":"0",
         "IrrfIncidence":"false",
         "IssServiceCode":"         ",
         "PisRetaining":"false",
         "CsllRetaining":"false",
         "PisAliquot":"0",
         "CofinsAliquot":"0",
         "TaxSubstitutionCode":"         ",
         "CofinsRetaining":"false",
         "IssAliquot":"0",
         "MunicipalTaxCod":"                    "
      },
      "ItemLenght":"0",
      "EconomicLot":"0",
      "Name":"PRODUTO QUIRONS 01",
      "MinimumLot":"0",
      "ManufacturerCode":"                    ",
      "ItemHeight":"0",
      "NetWeight":"0",
      "Values":{
         "CostPrice":"0",
         "SalesPrice":"0",
         "AverageCostPrice":"0",
         "StandardCostPrice":"0"
      },
      "Brand":"",
      "ShortName":"PRODUTO QUIRONS 01",
      "Active":"1",
      "MultiplicationFactorValue":"0",
      "CompanyinternalId":"99|01",
      "InternalId":"99|01|QUIRONS01",
      "ProductType":"10",
      "GrossWeight":"0",
      "ItemFeaturesTechnical":"",
      "ItemDescription":"",
      "ItemDimensions":"0",
      "BranchId":"01",
      "UnitOfMeasureInternalId":"99|01|Q5",
      "StandardWarehouseDescription":"QUIRONS",
      "TypeUMConversion":[
         {
            "type":"M",
            "Description":"Multiplicador"
         }
      ],
      "StandardWarehouseCode":"33",
      "Trail":"N",
      "BinControl":"False",
      "Origin":""
   }
}
Expandir
titlePrincipais Tags
TagDescrição
BranchIdFilial do Protheus
DeliveryTypeTipo de Sincronização da Mensagem
TransactionNome da Mensagem que está enviando
StandardVersionVersão do Adapter que está utilizando
UUIDID único da mensagem 
EventTipo de Evento, sendo que na inclusão de um registro será "upsert"
CompanyIdCódigo da Empresa do Protheus. Ex: "99" ou "01"
GeneratedOnData que será gravada como inclusão do registro
SourceApplicationNome da aplicação a ser gravada no De/Para
StandardWarehouseInternalIdId externo do Armazém (XXF_EXTVAL) a ser preenchido no Produto (B1_LOCPAD)
StandardWarehouseDescriptionDescriação do Armazém
StandardWarehouseCodeCódigo do Armazém
UnitOfMeasureCodeCódigo da Unidadde de Medida
UnitOfMeasureInternalIdId externo da Unidade de Medida (XXF_EXTVAL) a ser preenchida no Produto (B1_UM)
CodeCódigo do Produto (B1_COD)
Name / ShortNameDescrição do Produto
InternalIdInternal Id do Produto
Card
label4. Requisição de Armazém
Expandir
titleExemplo de Json
Bloco de código
titleREQUEST
{
   "Header":{
      "BranchId":"01",
      "CompanyId":"99",
      "DeliveryType":"Sync",
      "Event":"upsert",
      "GeneratedOn":"2022-04-20T11:37:53Z",
      "ProductName":"PROTHEUS",
      "ProductVersion":"1.0.0",
      "SourceApplication":"QUIRONS",
      "StandardVersion":"1.000",
      "Type":"BusinessMessage",
      "SubType":"event",
      "UUID":"4d5f50b0-b423-11ec-9191-33b31221ae01",
      "BranchSharingMode":"",
      "BusinessUnitySharingMode":"",
      "CompanySharingMode":"",
      "Version":"1.009",
      "Transaction":"REQUEST"
   },
   "Content":{
      "Code":"",
      "InternalId":"4d4cda20-b423-11ec-9191-33b17223ae01",
      "CompanyId":"99",
      "BranchId":"01",
      "Number":"",
      "RegisterDateTime":"2022-04-20T11:37:53Z",
      "CompanyInternalId":"99|01",
      "DeliveryDateTime":"2022-04-20T11:37:53Z",
      "UserRequesterCode":"[email protected]",
      "UserRequesterInternalId":"Estoque",
      "Type":"001",
      "ListOfRequestItem":[
         {
            "Event":"upsert",
            "CostCenterCode":"01",
            "Code":"01",
            "InternalId":"4d1ace18-b423-11ec-b337-d3c1947b8001",
            "DeliveryDateTime":"2022-04-20T11:37:53Z",
            "ItemInternalid":"99|01|QUIRONS01",
            "Quantity":"1",
            "TotalPrice":"1",
            "UnitPrice":"1",
            "UnitOfMeasureInternalId":"99|01|Q5",
            "WarehouseInternalId":"99|01|33",
            "Observation":"Lorem ipsum dolor sit amet"
         },
         {
            "Event":"upsert",
            "CostCenterCode":"02",
            "Code":"02",
            "InternalId":"4d1e28f6-b423-11ec-b337-c18a880fb401",
            "DeliveryDateTime":"2022-04-20T11:37:53Z",
            "ItemInternalid":"99|01|QUIRONS01",
            "Quantity":"1",
            "TotalPrice":"1",
            "UnitPrice":"1",
            "UnitOfMeasureInternalId":"99|01|Q5",
            "WarehouseInternalId":"99|01|33",
            "Observation":"Lorem ipsum dolor sit amet"
         }
      ]
   }
}
Expandir
titlePrincipais Tags
TagDescriçãoBranchIdFilial do ProtheusDeliveryTypeTipo de Sincronização da MensagemTransactionNome da Mensagem que está enviandoStandardVersionVersão do Adapter que está utilizandoUUIDID único da mensagem EventTipo de Evento, sendo que na inclusão de um registro será "upsert"CompanyIdCódigo da Empresa do Protheus. Ex: "99" ou "01"GeneratedOnData que será gravada como inclusão do registroSourceApplicationNome da aplicação a ser gravada no De/ParaContent > InternalIdId externo da Solicitação (XXF_EXTVAL) que fará o De/Para com o campo CP_NUMUserRequesterCodeUsuário que realizou a requisição (CP_SOLICIT)UserRequesterInternalIdId interno do Solicitante, o sistema vai absorver o código do usuário que está acessando o Rest (CP_CODSOLI)CostCenterCodeCódigo do Centro de Custo (CP_CC)CostCenterCode > InternalIdId externo do Centro de Custo (XXF_EXTVAL) que fará o De/Para com o campo CP_CCItemInternalidId externo do Cadastro do Produto (XXF_EXTVAL) que fará o De/Para com o campo CP_PRODUTOUnitOfMeasureInternalIdId externo da Unidade de Medida (XXF_EXTVAL) a ser preenchida na Requisição (CP_UM)WarehouseInternalIdId externo do Armazém (XXF_EXTVAL) a ser preenchido na Requisição (CP_LOCAL)ObservationObservação a ser preenchida no campo CP_OBS

Agora vamos testar a integração da Requisição ao Armazém: Requisição ao Armazém | "REQUEST" (MATA105)

Card
label5. Movimentação Interna

Vamos agora para a nossa próxima movimentação na integração que é a Movimentação Interna (MATA241)

O adapter da Movimentação é o "STOCKTURNOVER" (MATA241). Abaixo temos o exemplo do Json e as Tags mais importantes:

Expandir
titleExemplo de Json
Bloco de código
titleSTOCKTURNOVER
{
   "Header":{
      "ProductVersion":"12",
      "BranchId":"01",
      "Type":"BusinessMessage",
      "ProductName":"PROTHEUS",
      "BusinessUnit":"",
      "DeliveryType":"sync",
      "Transaction":"STOCKTURNOVER",
      "StandardVersion":"1.000",
      "Version":"1.000",
      "UUID":"63f4edf9-2f90-9e14-dc40-a05f25109e03",
      "SubType":"event",
      "Enterprise":"",
      "Event":"upsert",
      "CompanyId":"99",
      "GeneratedOn":"2022-04-20T14:52:06Z",
      "SourceApplication":"QUIRONS"
   },
   "Content":{
      "Number":"",
      "Series":"        ",
      "BranchId":"01",
      "Code":"TESTE00",
      "Type":"S",
      "MovementTypeCode":"599",
      "DocumentType":"R",
      "ListOfStockTurnoverItem":[
         {
            "NumberSeries":"",
            "ItemReferenceCode":"QUIRONS01",
            "UnitPrice":1,
            "LotExpirationDate":"",
            "InternalId":"99|01|TESTE00|107528",
            "ItemInternalId":"99|01|QUIRONS01",
            "UnitOfMeasureCode":"Q5",
            "ProjectInternalId":"",
            "WarehouseCode":"33",
            "RequestItemInternalId":"99|01|PMS119|01|20220420",
            "CostCenterCode":"01",
            "Observation":"",
            "LotOrSerialNumber":"",
            "UnitOfMeasureInternalId":"99|01|Q5",
            "Code":"TESTE00",
            "ItemCode":"QUIRONS01",
            "WarehouseInternalId":"99|01|33",
            "DeliveryDateTime":"2022-04-20",
            "CostCenterInternalId":"4d1ace18-b423-11ec-b337-d3c1947b8001",
            "AccountantAcountInternalId":"",
            "BinLocation":"",
            "TaskInternalId":"",
            "EmissionDate":"2022-04-20",
            "TotalPrice":1,
            "Quantity":1,
            "TotalStock":100
         },
         {
            "NumberSeries":"",
            "ItemReferenceCode":"QUIRONS02",
            "UnitPrice":1,
            "LotExpirationDate":"",
            "InternalId":"99|01|TESTE00|107529",
            "ItemInternalId":"99|01|QUIRONS02",
            "UnitOfMeasureCode":"M2",
            "ProjectInternalId":"",
            "WarehouseCode":"38",
            "RequestItemInternalId":"99|01|PMS119|02|20220420",
            "CostCenterCode":"02",
            "Observation":"",
            "LotOrSerialNumber":"",
            "UnitOfMeasureInternalId":"99|01|M2",
            "Code":"TESTE00",
            "ItemCode":"QUIRONS02",
            "WarehouseInternalId":"99|01|38",
            "DeliveryDateTime":"2022-04-20",
            "CostCenterInternalId":"99|01|02",
            "AccountantAcountInternalId":"",
            "BinLocation":"",
            "TaskInternalId":"",
            "EmissionDate":"2022-04-20",
            "TotalPrice":1,
            "Quantity":1,
            "TotalStock":100
         }
      ],
      "DeliveryDateTime":"2022-04-20",
      "InternalId":"99|01|TESTE00|107528",
      "CompanyId":"99",
      "RegisterDateTime":"2022-04-20",
      "CompanyInternalId":"99|01",
      "AbatementDateTime":"2022-04-20"
   }
}
Expandir
titlePrincipais Tags
TagDescriçãoBranchIdFilial do ProtheusDeliveryTypeTipo de Sincronização da MensagemTransactionNome da Mensagem que está enviandoStandardVersionVersão do Adapter que está utilizandoUUIDID único da mensagem EventTipo de Evento, sendo que na inclusão de um registro será "upsert"CompanyIdCódigo da Empresa do Protheus. Ex: "99" ou "01"GeneratedOnData que será gravada como inclusão do registroSourceApplicationNome da aplicação a ser gravada no De/ParaCostCenterCodeCódigo do Centro de Custo (D3_CC)CostCenterInternalIdId externo do Centro de Custo (XXF_EXTVAL) que fará o De/Para com o campo D3_CCItemInternalidId externo do Cadastro do Produto (XXF_EXTVAL) que fará o De/Para com o campo D3_CODUnitOfMeasureInternalIdId externo da Unidade de Medida (XXF_EXTVAL) a ser preenchida na Movimentação (D3_UM)WarehouseInternalIdId externo do Armazém (XXF_EXTVAL) a ser preenchido na Movimentação (D3_LOCAL)

Agora vamos testar a integração da Movimentação Interna: Movimentação Interna | "STOCKTURNOVER" (MATA241)

Card
label6. Saldo Atual

Vamos agora para a rotina de Saldo Atual (MATA225)

O adapter da Movimentação é o "STOCKLEVEL" (MATA225). Abaixo temos o exemplo do Json e as Tags mais importantes:

Expandir
titleExemplo de Json
Bloco de código
titleSTOCKLEVEL
{
   "Header":{
      "ProductVersion":"12",
      "BranchId":"01",
      "Type":"BusinessMessage",
      "ProductName":"PROTHEUS",
      "BusinessUnit":"",
      "DeliveryType":"sync",
      "Transaction":"STOCKLEVEL",
      "StandardVersion":"1.000",
      "Version":"3.004",
      "UUID":"48997d98-0480-0109-f17e-1fc7d8c844b0",
      "SubType":"event",
      "Enterprise":"",
      "Event":"upsert",
      "CompanyId":"99",
      "GeneratedOn":"2022-04-20T14:35:21Z",
      "SourceApplication":"QUIRONS"
   },
   "Content":{
      "BranchId":"01",
      "Active":"true",
      "ListOfReturnItem":[
         {
            "CurrentStockAmount":"98",
            "ReserveSource":" ",
            "FutureStockAmount":"0",
            "ValueOfCurrentStockAmount":"98",
            "ListOfAddressStock":{
               
            },
            "CompanyId":"99",
            "ItemInternalId":"99|01|QUIRONS01",
            "AvailableStockAmount":"98",
            "BookedStockAmount":"0",
            "Amountcommittedstock":"0",
            "UnitItemCost":"1",
            "UnitOfMeasureInternalId":"99|01|Q5",
            "BranchId":"01",
            "TransitStockAmount":"0",
            "CompanyInternalId":"99|01",
            "AverageUnitItemCost":"98",
            "SalesOrderQuantity":"0",
            "ListOfWarehouseStock":[
               {
                  "WarehouseInternalId":"99|01|33",
                  "CurrentStockAmount":"98",
                  "TransitStockAmount":"0",
                  "FutureStockAmount":"0",
                  "UnitItemCost":"1",
                  "ValueOfCurrentStockAmount":"98",
                  "AvailableStockAmount":"98",
                  "BookedStockAmount":"0",
                  "AverageUnitItemCost":"98",
                  "SalesOrderQuantity":"0",
                  "Amountcommittedstock":"0"
               }
            ],
            "ListOfLotStock":{
               
            },
            "ListOfSeriesStock":{
               
            }
         }
      ],
      "Event":"upsert",
      "CompanyId":"99",
      "CompanyinternalId":"99|01",
      "Entity":"StockLevel"
   }
}
Expandir
titlePrincipais Tags
TagDescriçãoBranchIdFilial do ProtheusDeliveryTypeTipo de Sincronização da MensagemTransactionNome da Mensagem que está enviandoStandardVersionVersão do Adapter que está utilizandoUUIDID único da mensagem EventTipo de Evento, sendo que na inclusão de um registro será "upsert"CompanyIdCódigo da Empresa do Protheus. Ex: "99" ou "01"GeneratedOnData que será gravada como inclusão do registroSourceApplicationNome da aplicação a ser gravada no De/ParaCurrentStockAmountB2_QATUFutureStockAmountB2_QACLASSValueOfCurrentStockAmountB2_VATU1ListOfAddressStockLista dos endereços dos produtos (Caso utilize Endereçamento)AvailableStockAmountEstoque DisponívelBookedStockAmountB2_RESERVAAmountcommittedstockB2_QEMPUnitItemCostB2_CM1AverageUnitItemCostB2_VATU1SalesOrderQuantityB2_QPEDVEN

Pode lhe Interessar:

...