× Linguagem de Programação ADVPL

Perguntas ROTINA CUSTOMIZADA EXECUTAR SOZINHA

Mais
11 anos 3 meses atrás #16334 por lalberto
Respondido por lalberto no tópico ROTINA CUSTOMIZADA EXECUTAR SOZINHA
Brother em 2 horas estarei em casa e te ajudo ok.

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 3 meses atrás #16336 por filipe.abreu
Ok obrigado pela ajuda Luiz.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 3 meses atrás - 11 anos 3 meses atrás #16338 por lalberto
Respondido por lalberto no tópico ROTINA CUSTOMIZADA EXECUTAR SOZINHA
Filipe aqui o exemplo de como vc vai ler um XML:

cError := ''
cWarning := ''


cMV_PAR01 := RTrim(Upper(cArq))
aCabPV := {}
aItemPV := {}


oXml := XmlParserFile(cMV_PAR01, "_", @cError, @cWarning)


If !(oXml == Nil .Or. (Len(cError) > 0) .Or. (Len(cWarning) > 0))

_dEmissao := Left(Rtrim(oXml:_CXML:_REQUEST:_ORDERREQUEST:_ORDERREQUESTHEADER:_ORDERDATE:TEXT),10)
// 2007-08-01
_dEmissao := CtoD( Right(_dEmissao,2)+'/'+SubStr(_dEmissao,6,2)+'/'+Left(_dEmissao,4) )
_cFixo104 := Right(Rtrim(oXml:_CXML:_REQUEST:_ORDERREQUEST:_ORDERREQUESTHEADER:_ORDERID:TEXT),6)
_cFixo106 := "000001"
_cFixo107 := "001"
cFabric := Rtrim(oXml:_CXML:_REQUEST:_ORDERREQUEST:_ORDERREQUESTHEADER:_SHIPTO:_ADDRESS:_NAME:TEXT)
_cLocalEn := Rtrim(oXml:_CXML:_REQUEST:_ORDERREQUEST:_ORDERREQUESTHEADER:_SHIPTO:_ADDRESS:_POSTALADDRESS:_DELIVERTO[1]:TEXT)
_cFixo122 := Rtrim(oXml:_CXML:_REQUEST:_ORDERREQUEST:_ORDERREQUESTHEADER:_SHIPTO:_ADDRESS:_PHONE:_TELEPHONENUMBER:_NUMBER:TEXT)
_cEmail := Rtrim(oXml:_CXML:_REQUEST:_ORDERREQUEST:_ORDERREQUESTHEADER:_SHIPTO:_ADDRESS:_EMAIL:TEXT)
// _cFixo121 := Iif(Rtrim(oXml:_CXML:_REQUEST:_ORDERREQUEST:_ORDERREQUESTHEADER:_EXTRINSIC[3]:_COMMENT:_COMMENTBY:TEXT)=NIL,_cEmail,Rtrim(oXml:_CXML:_REQUEST:_ORDERREQUEST:_ORDERREQUESTHEADER:_EXTRINSIC[3]:_COMMENT:_COMMENTBY:TEXT))
_cFixo121 := _cEmail

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Ultima edição: 11 anos 3 meses atrás por lalberto.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 3 meses atrás #16343 por filipe.abreu
Luiz o problema é o seguinte, veja este código:

cXmlRet:= httpGet(cURLH) //<-- me retorna uma string com o conteudo no formato de um arquivo XML

/*
<result>
<resourceName>activityHistory</resourceName>
<size>2</size>
<entries>
<entry id="5632444" link="/activityHistory/5632444.xml"/>
<entry id="5632553" link="/activityHistory/5632553.xml"/>
</entries>
</result>*/

oXML:= XmlParser(cXmlRet, "_", @cError, @cWarning)

// se eu tentar pegar o conteudo do nó 'resourceName' para dentro de uma variavel ou campo dá certo

cRsName:= oXML:_result:_resourceName:text

/*
mas como eu faria para pegar o id do nó entry?? se ele estivesse assim: <entry><id>5632444</id></entry> eu conseguiria pegar do mesmo jeito que fiz com resourceName, no seu código exemplo não consegui entender como ajudaria neste caso.
*/

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 3 meses atrás #16344 por kanaamlrr
Filipe,
da uma olhada no seu debug quais propriedades estão disponíveis para o node Entry, ele pode estar atribuindo o id em outro atributo que não o text.

Na pior das hipóteses você pode fazer uma busca por string, porém isso vai derrubar sua performance.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 3 meses atrás #16346 por filipe.abreu
Consegui!!

Tendo como base o código que passei acima, para acessar uma propriedade do node é só fazer assim:

cID:= oXml:_result:_entries:_entry[1]:_id:text , os filhos(entry) de entries são tidos como um array, e é necessário vc apontar qual a propriedade que vc quer pegar.

se eu preferisse pegar a propriedade link, no lugar de _id seria _link. Espero ter ajudado.

Realmente Luiz no seu exemplo tem algo parecido, obrigado pela ajuda. Só peço para não fechar o tópico ainda pq não conclui a questão da rotina executar sozinha. assim que fazer alguns testes posto aqui se deu certo ou não.

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.108 segundos
Joomla templates by a4joomla