Árvore de páginas

Ponto de Entrada - Lj901AVl

Este Ponto de Entrada é executado na rotina LOJA901A , antes do processamento unitário do XML do Pedido de Venda e retorna se o pedido e-commerce deve ser processado pela rotina de integração; e se deve ser enviada a confirmação para o e-commerce; caso contrário (não processado pela rotina de integração)

 Importante: Este ponto de entrada está disponível somente na versão 12

Descrição:

Atualizações\Cadastros

Localização:

E-commerce

Eventos:

Monitor Serv. CiaShop

Programa   Fonte:

LOJA901A - Pedidos

Função:

Protheus

Parâmetos:

                                                                      

Nome     Tipo     Descrição   
   oAPed        Objeto     Objeto do XML do Pedido. Contendo     as tags do Pedido e-commerce, definido em http://wiki.ciashop.com.br/desenvolvedores/manual-integracao-ws/metodos-do-sistema/pedidos/Importante: o nome da tag      deve ter o prefixo “_” e ter o sufixo “:TEXT” para retornar seu conteúdo   Exemplo: Para ler a tag     “order_id”, devemos informar oAPed:_ORDER_ID:TEXT   
   cSeq      Caractere      Sequência do Log de Integração   
   oWS     Objeto      Objeto     WebService   

 

Retorno:

                                        

  Nome      Tipo      Descrição      Obrigatório   
   aRet      Array   

  Array     unidimensional onde serão retornadas as seguintes informações:   

aRet[1]     - Lógico  - Processa o Pedido na integração?   

aRet[2]     - Lógico  - Envia a confirmação do Pedido, caso o retorno do     Processamento seja falso (aret[1])

   Sim    

Exemplo:

#Include "Protheus.ch"

User Function Lj901AVl()
Local oAPed := NIL //Objeto XML da venda
Local cSeq := "" //Sequencia do processamento intermediária
Local oWS := NIL //Objeto WebService
Local oRetExtra := NIL //Campos extras do Pedido
Local cOrderID :=  "" //Numero do Pedido e-commerce
Local aCamposExtra := NIL //Campos extras do cliente
Local aRet := {.T., .T.} //Retorno do Ponto de Entrada
Local oExtaCli := NIL //Campo extra do cliente
Local nC := 0

If ValType(PARAMIXB) == "A" .AND. Len(PARAMIXB) >= 3 .AND. ;
            ValType(PARAMIXB[1]) == "O" .AND. ValType(PARAMIXB[3]) == "O"  .AND. ValType(PARAMIXB[2]) == "C"
      oAPed := PARAMIXB[1]
      cSeq := PARAMIXB[2]
      oWS := PARAMIXB[3]
     
      cOrderID := oAPed:_ORDER_ID:TEXT

      //Campo extra do pedido
      oRetExtra := Lj901BPr(.F.,cOrderID, oWS, .T., "order")
     
      //Campo extra do comprador
      oExtaCli := Lj901BPr(.F.,oAPed:_RECEIPT_SHOPPER:_SHOPPER_ID:TEXT, oWS, .T., "customer")
      If oExtaCli <> NIL
            aCamposExtra := XmlChildEx(oExtaCli, "_CAMPOS_EXTRAS_RESULT")
      EndIf
      If oExtaCli <> nil .AND. aCamposExtra <> NIL

            aCamposExtra := XmlChildEx(aCamposExtra, "_CAMPO_EXTRA")
           
            If aCamposExtra == NIL
                  aCamposExtra := {}
            ElseIf  aCamposExtra <> NIL .AND. Valtype(aCamposExta) <> "A"
                  aCamposExtra := {}
                  aAdd(aCamposExtra, oExtaCli:_CAMPOS_EXTRAS_RESULT:_CAMPO_EXTRA)
            EndIf
      EndIf
     
      //vERIFICA O CAMPO EXTRA TIPO DE COMPRADOR ( INFORMAÇÃO ESPECÍFICA PARA ESTE AMBIENTE)
      For nC := 1 to len(aCamposExtra)
            If Upper(AllTrim(aCamposExtra[nC]:_CHAVE:TEXT)) == "TIPOCOMPRADOR"
                  aRet[1] := .f. //Não Processa o pedido
                  aRet[2] := .f. //Nao Envia a confirmação
           
                  aRet[1] := Upper(AllTrim(aCamposExtra[nC]:_VALOR:TEXT))== "COMPRADOR"
                  Exit
            EndIf
      Next

      //processa o Pedido, mas não envia a confirmação
      If aRet[1]
            aRet[2] := .F.
      Else //Não processa o pedido
            aRet[2] := .t. //envia a confirmação
      EndIf
     
      Conout("Pedido e-commerce " + oAPed:_ORDER_ID:TEXT+ " CGC/CPF Comprador " + oAPed:_RECEIPT_SHOPPER:_SHOPPER_CPF:TEXT)
EndIf

Return aRet