Árvore de páginas

Ponto de Entrada - Lj900AGP

Este Ponto de Entrada é executado na rotina LOJA900A , para indicar se o produto deve ou não ir para a integração.

Descrição:

Atualizações\Cadastros

Localização:

E-commerce

Eventos:

Monitor Serv. CiaShop

Programa Fonte:

LOJA900A - Produtos

Função:

Protheus

Parâmetos:

Nome

Tipo

Descrição

cProduto 

 Caractere

Codigo do produto no ERP

cProdPai 

Caractere

Codigo do produto-pai

lVariante

Lógico 

Produto é variante

 cTagProd Caractere Indica qual tag será processada, se 1 - "product" (cabeçalho. neste caso não gera a tag product nem as tags variant (dados da variante). Caso seja 2 esta processando a tag variant, ou seja, passou pelo processamento 1

 

 

Retorno:

Nome

Tipo

Descrição

Obrigatório

 lGera

 Lógico

Indica se deve ser gerado o XML com os dados do Produto.

Importante: caso o ponto de entrada retorne que não gere os dados-  retorno .F. - , os campos de controle de processamento do registro serão gravados para que o produto não seja selecionado na proxima execução da rotina

Sim 

 

Exemplo:

#Include 'Protheus.ch'

 

User Function Lj900AGP()

 

Local cProduto := ""
Local cProdPai := ""
Local lVariante := .F.
Local cTagProd := ""
local lGera := .t.
Local aArea := {}

 


//Tratamento dos parâmetros de entrada
If ValType(PARAMIXB) == "A" .AND. Len(PARAMIXB) >= 4 .AND. ;
  ValType(PARAMIXB[1]) == "C"  .AND. ValType(PARAMIXB[2]) == "C" .and.;  
  ValType(PARAMIXB[3]) == "L"  .AND. ValType(PARAMIXB[4]) == "C"
 
 cProduto := PARAMIXB[1]
 cProdPai := PARAMIXB[2]
 lVariante := PARAMIXB[3]
 cTagProd :=  PARAMIXB[4]
 
 If cTagProd = "1" .OR. ( cTagProd = "2" .and. lVariante)
  //No meu caso estou realizando somente a validação na tag pai e no filho (variante)
  If lVariante
   //Se for variante, os dados de inclusão do e-commerce, ficam na tabela SB0
   aArea := SB0->(GetArea())
   SB0->( dbSetOrder(1) )
   SB0->( dbSeek( xFilial("SB0") + cProduto) )
   
   lGera := SB0->(Found() .AND. Empty(B0_ECSEQ))
     
   RestArea(aArea)
  Else
   //Se não for variante, os dados de inclusão do e-commerce, ficam na tabela SB5
   aArea := SB5->(GetArea())
   SB5->( dbSetOrder(1) )
   SB5->( dbSeek( xFilial("SB5") + cProduto ) )
   
   lGera := SB5->(Found() .AND. Empty(B5_ECSEQ))
   
   RestArea(aArea)
  EndIf
 EndIf
 
EndIf
Return lGera