TUTORIAL: USING POSTMAN TO TEST XML WEB SERVICES


1 - Após iniciar o postman, click em add request e edite a opção GET para POST.  


2 - Defina a URL para requisição, por exemplo nas integrações EAI Mensagem Unica é utilizado a URL http://localhost:81/EAISERVICE.apw.

Alterar a porta conforme configuração realizada na tag [HTTPREST] Port=8996 do appserver.ini

2.1 Definição na aba Header de duas Keys SoapAction e Content-Type.

SOAPAction: "http://www.totvs.com/RECEIVEMESSAGE"
Content-Type: text/xml


2 - Definição do XML a ser enviado:

O XML é Definido com:

XML:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/">
<soapenv:Header/>
<soapenv:Body>
                   <tot:RECEIVEMESSAGE>
                   <tot:INMSG><![CDATA[<?xml version="1.0" encoding="UTF-8"?><TOTVSMessage><MessageInformation version="1.000"><UUID>2e9320b3-d01e-4e45-9d99-bc052b9ae723</UUID><Type>BusinessMessage</Type><Transaction>WHOIS</Transaction>                       <StandardVersion>1.000</StandardVersion><SourceApplication>RM</SourceApplication><CompanyId>1</CompanyId><BranchId>1</BranchId><Product name="RM" version="12.1.25.0" /><GeneratedOn>2019-08-16T14:35:01</GeneratedOn>                                      <DeliveryType>Sync</DeliveryType></MessageInformation><BusinessMessage><BusinessEvent><Entity>WHOIS</Entity><Event>upsert</Event></BusinessEvent><EnabledTransactions /></BusinessMessage></TOTVSMessage>]]></tot:INMSG>
</tot:RECEIVEMESSAGE>
</soapenv:Body>
</soapenv:Envelope>





EXEMPLOS:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/">
<soapenv:Header/>
<soapenv:Body>
<tot:RECEIVEMESSAGE>
<tot:INMSG><![CDATA[<TOTVSMessage>
<MessageInformation version="2.000">
<UUID>0e990017-d32e-439d-baf5-ec8cd4553f7e</UUID>
<Type>BusinessMessage</Type>
<Transaction>PROJECT</Transaction>
<StandardVersion>1.000</StandardVersion>
<SourceApplication>RM</SourceApplication>
<CompanyId>1</CompanyId>
<BranchId>1</BranchId>
<Product name="RM" version="12.1.24.0" />
<GeneratedOn>2019-08-16T17:37:15</GeneratedOn>
<DeliveryType>Sync</DeliveryType>
</MessageInformation>
<BusinessMessage>
<BusinessEvent>
<Entity>PROJECT</Entity>
<Event>Upsert</Event>
</BusinessEvent>
<BusinessContent>
<CompanyId>1</CompanyId>
<BranchId>1</BranchId>
<CompanyInternalId>1|1</CompanyInternalId>
<ShortCode>69</ShortCode>
<Code>160820</Code>
<InternalId>311D73CF-3B34-4ED6-A811-E07F7920A431</InternalId>
<Description>Teste</Description>
<RegisterDate p2:nil="true" xmlns:p2="http://www.w3.org/2001/XMLSchema-instance" />
<BeginDate p2:nil="true" xmlns:p2="http://www.w3.org/2001/XMLSchema-instance" />
<FinalDate p2:nil="true" xmlns:p2="http://www.w3.org/2001/XMLSchema-instance" />
<StatusProject p2:nil="true" xmlns:p2="http://www.w3.org/2001/XMLSchema-instance" />
<WorkId p2:nil="true" xmlns:p2="http://www.w3.org/2001/XMLSchema-instance" />
</BusinessContent>
</BusinessMessage>
</TOTVSMessage>]]></tot:INMSG>
</tot:RECEIVEMESSAGE>
</soapenv:Body>
</soapenv:Envelope>

http://bh-eng-auttopce.bh01.local:8997/rest/TASKCOSTASSIGNMENTS?page=1&pageSize=2000&sourceApp=RM&companyId=1&branchId=1&initialTaskInternalId=00A635A7-1ADB-47E5-9A17-A4CF14E9E00E&finishTaskInternalId=00A635A7-1ADB-47E5-9A17-A4CF14E9E00E&companyInternalId=1|1&freightValueExcluded=False&insuranceValueExcluded=False&expenseValueExcluded=False&IPIValueExcluded=False&currencyId=R$&datePurchase=00&dateStock=01&datePayment=01

{
data: {
tasks: [
{
taskCostAssignments: [
{
itemNumber: "0001",
unitPrice: 10,
recno: 670,
itemInternalid: "T1||PRD44",
documentType: "NFE",
deductionValue: 0,
currencyInternalId: "T1|D MG 01|01",
increase: 0,
documentNumber: "000000000",
unitOfMeasureInternalid: "T1||XX",
customerVendorInternalId: "T1|D MG 01|999999|01|F",
companyInternalid: "T1|D MG 01",
decrease: 0,
totalPrice: 10,
apportionmentDate: "2019-04-11",
quantity: 1,
retentionValue: 0
}
],
taskInternalId: "T1|D MG 01|PRJ01|0001|001.01.01"
}
],
accountingClosingDate: "1800-01-01"
},
hasNext: false,
total: 1
}


Criando Testes para validar XML:


pm.test("Valida Status Retorno", function () {
    pm.expect(pm.response.code).to.be.oneOf([200]);
});

pm.test("Valida Conteúdo do Body - De/Para", function () {
    pm.expect(pm.response.text()).to.include("311D73CF-3B34-4ED6-A811-E07F7920A431");
});


Collections:

DBF da Tabela de Adapters.