#Include 'Protheus.ch'
//---------------------------------------------------------------------
/*/{Protheus.doc} NGMUPE01
Ponto de entrada chamado pelos adapters da NG no envio dos XML's de
integração via mensagem única. A implementação NGMUCANREQ visa identificar
o RequestInternalId utilizado na integração e manipular o XML de cancelamento
para obedecer o mesmo ID, independente do parâmetro.
@param aPARAMIXB[1] - cXmlRet, xml montado no adapter
@param aPARAMIXB[2] - retorno booleano para o adapter, confirma seu envio
@param aPARAMIXB[3] - nome da mensagem integrada
@param aPARAMIXB[4] - 1 para chamada no final do adapter, com XML montado
@param aPARAMIXB[5] - Indica o tipo de transação.
@param aPARAMIXB[6] - Indica o tipo de mensagem.
@author NG Informática
@since 07/10/2016
@versiON P11, P12
@return Array (lRet, cXmlRet)
/*/
//---------------------------------------------------------------------
User Function NGMUPE01()
Local cXML := ParamIXB[1] //(Caracter) XML que será alterado no ponto de entrada.
Local lRet := ParamIXB[2] //(Lógico) Retorno que será enviado pelo adapter de mensagem única.
Local cMsg := ParamIXB[3] //(Caracter) Indica a função que o P.E. está sendo chamado.
Local nLoc := ParamIXB[4] //(Numérico) Indica o ponto no adapter em que é chamado a mensagem única: 1 - Final do adapter, com o XML gerado.
Local nTip := ParamIXB[5] //(Numérico) Indica o tipo de transação.
Local cMen := ParamIXB[6] //(Caracter) Indica o tipo de mensagem.
Local cError := ' ', cWarning := ' '
Local lAglutina, lAglutinou
Local cInternalId := ' '
Private oXml
If Upper(cMsg) == "NGMUREQUES"
//Gera o Objeto XML
oXml := XmlParser( "<raiz>"+cXml+"</raiz>", "_", @cError, @cWarning )
If Type("oXml:_raiz:_BusinessContent:_Observation") == "O"
nPosIni := RAT('<Observation>',cXml)
nPosCont := ( RAT('<ListOfApportionRequestItem>',cXml) - RAT('<Observation>',cXml) )
cSubstit := SubStr(cXml,nPosIni,nPosCont)
cObser := '<Observation>' + 'Teste de inclusao de Observacao' + '</Observation>' //Adiciona o Nome do Bem na Observação
cXML := StrTran(cXml, cSubstit, cObser )
EndIf
ElseIf Upper(cMsg) == "NGMUAMPPAT"
//Gera o Objeto XML
oXml := XmlParser( "<raiz>"+cXml+"</raiz>", "_", @cError, @cWarning )
If Type("oXml:_raiz:_BusinessContent:_Observation") == "O"
nPosIni := RAT('<Observation>',cXml)
nPosCont := ( RAT('</BusinessContent>',cXml) - RAT('<Observation>',cXml) )
cSubstit := SubStr(cXml,nPosIni,nPosCont)
cObser := '<Observation>' + 'Teste de inclusao de Observacao' + '</Observation>' //Adiciona o Nome do Bem na Observação
cXML := StrTran(cXml, cSubstit, cObser )
EndIf
ElseIf Upper(cMsg) == "NGMUAPRCST"
//Gera o Objeto XML
oXml := XmlParser( "<raiz>"+cXml+"</raiz>", "_", @cError, @cWarning )
If Type("oXml:_raiz:_BusinessContent:_Observation") == "O"
nPosIni := RAT('<Observation>',cXml)
nPosCont := ( RAT('<ListOfApportionAppointmentCostItem>',cXml) - RAT('<Observation>',cXml) )
cSubstit := SubStr(cXml,nPosIni,nPosCont)
cObser := '<Observation>' + 'Teste de inclusao de Observacao' + '</Observation>' //Adiciona o Nome do Bem na Observação
cXML := StrTran(cXml, cSubstit, cObser )
EndIf
ElseIf Upper(cMsg) == "NGMUCANMNO"
//Gera o Objeto XML
oXml := XmlParser( "<raiz>"+cXml+"</raiz>", "_", @cError, @cWarning )
If Type("oXml:_raiz:_BusinessContent:_CancelReason") == "O"
nPosIni := RAT('<CancelReason>',cXml)
nPosCont := ( RAT('<CancelRelatedRequests>',cXml) - RAT('<CancelReason>',cXml) )
cSubstit := SubStr(cXml,nPosIni,nPosCont)
cCancel := '<CancelReason>' + 'Teste de cancelamento' + '</CancelReason>' //Adiciona informação no motivo de Cancelamento
cXML := StrTran(cXml, cSubstit, cCancel )
EndIf
ElseIf Upper(cMsg) == "NGMUCANREQ"
//Gera o Objeto XML
oXml := XmlParser( "<raiz>"+cXml+"</raiz>", "_", @cError, @cWarning )
If Type("oXml:_raiz:_BusinessContent:_CancelReason") == "O"
nPosIni := RAT('<CancelReason>',cXml)
nPosCont := ( RAT('<CancelRelatedRequests>',cXml) - RAT('<CancelReason>',cXml) )
cSubstit := SubStr(cXml,nPosIni,nPosCont)
cCancel := '<CancelReason>' + 'Teste de cancelamento' + '</CancelReason>' //Adiciona informação no motivo de Cancelamento
cXML := StrTran(cXml, cSubstit, cCancel )
EndIf
ElseIf Upper(cMsg) == "NGMUGETSIT"
//Gera o Objeto XML
oXml := XmlParser( "<raiz>"+cXml+"</raiz>", "_", @cError, @cWarning )
If Type("oXml:_raiz:_BusinessContent:_RequestEmployeeSituations") == "O"
nPosIni := RAT('<StartEmployeeCode>',cXml)
nPosCont := ( RAT('<InternalId>',cXml) - RAT('<StartEmployeeCode>',cXml) )
cSubstit := SubStr(cXml,nPosIni,nPosCont)
cNewBra := '<StartEmployeeCode>' + 'Outro funcionario' + '</StartEmployeeCode>' //Adiciona informação de outro funcionário.
cXML := StrTran(cXml, cSubstit, cNewBra )
EndIf
ElseIf Upper(cMsg) == "NGMUMNTORD"
//Gera o Objeto XML
oXml := XmlParser( "<raiz>"+cXml+"</raiz>", "_", @cError, @cWarning )
If Type("oXml:_raiz:_BusinessContent:_Observation") == "O"
nPosIni := RAT('<Observation>',cXml)
nPosCont := ( RAT('</BusinessContent>',cXml) - RAT('<Observation>',cXml) )
cSubstit := SubStr(cXml,nPosIni,nPosCont)
cObser := '<Observation>' + 'Teste de inclusao de Observacao' + '</Observation>' //Adiciona o Nome do Bem na Observação
cXML := StrTran(cXml, cSubstit, cObser )
EndIf
ElseIf Upper(cMsg) == "NGMUORDER"
//Gera o Objeto XML
oXml := XmlParser( "<raiz>"+cXml+"</raiz>", "_", @cError, @cWarning )
If Type("oXml:_raiz:_BusinessContent:_BranchId") == "O"
nPosIni := RAT('<BranchId>',cXml)
nPosCont := ( RAT('<OrderItem>',cXml) - RAT('<BranchId>',cXml) )
cSubstit := SubStr(cXml,nPosIni,nPosCont)
cNewBra := '<BranchId>' + 'Teste de new branch.' + '</BranchId>' //Adiciona informação de new branch.
cXML := StrTran(cXml, cSubstit, cNewBra )
EndIf
ElseIf Upper(cMsg) == "NGMUSTOLVL"
//Gera o Objeto XML
oXml := XmlParser( "<raiz>"+cXml+"</raiz>", "_", @cError, @cWarning )
If Type("oXml:_raiz:_BusinessContent:_RequestItem:_WarehouseInternalId") == "O"
nPosIni := RAT('<WarehouseInternalId>',cXml)
nPosCont := ( RAT('</RequestItem>',cXml) - RAT('<WarehouseInternalId>',cXml) )
cSubstit := SubStr(cXml,nPosIni,nPosCont)
cNewBra := '<WarehouseInternalId>' + 'Teste de local de estoque.' + '</WarehouseInternalId>' //Altera local de estoque.
cXML := StrTran(cXml, cSubstit, cNewBra )
EndIf
ElseIf Upper(cMsg) == "NGMUSTOTUO"
//Gera o Objeto XML
oXml := XmlParser( "<raiz>"+cXml+"</raiz>", "_", @cError, @cWarning )
If Type("oXml:_raiz:_BusinessContent:_Observation") == "O"
nPosIni := RAT('<Observation>',cXml)
nPosCont := ( RAT('<ListOfApportionStockTurnoverItem>',cXml) - RAT('<Observation>',cXml) )
cSubstit := SubStr(cXml,nPosIni,nPosCont)
cObser := '<Observation>' + 'Teste de Observação.' + '</Observation>' //Adiciona nova Observação
cXML := StrTran(cXml, cSubstit, cObser )
EndIf
EndIf
Return cXML