PE: MP_CATPSQL

📌 Documentação do Ponto de Entrada MP_CATPSQL

🧩 Identificação

  • Nome do Ponto de Entrada: MP_CATPSQL
  • Objetivo: Consultar categorias na tabela ZCU aplicando filtros de exclusão e integração, retornando os dados no array aSegs.
  • Programa: NOVO4 (sincronização de Entidades de Entrada)
  • Localização: Consulta SQL dinâmica usando BEGINSQL na tabela ZCU

📥 Parâmetros Recebidos (PARAMIXB)

  • PARAMIXB[1]: Array de contas de "Meus Pedidos" (aCtaMps).
  • PARAMIXB[2]: Filial da conta de "Meus Pedidos" (cFilMp).
  • PARAMIXB[3]: Código da conta de "Meus Pedidos" (cCtaMp).
  • PARAMIXB[4]: Posição do array de contas (nz).

🏗️ Estrutura Interna

O ponto de entrada executa as seguintes operações:

Campo Valor Atribuído Nil
aCtaMps PARAMIXB[1] Nil
cFilMp PARAMIXB[2] Nil
cCtaMp PARAMIXB[3] Nil
nz PARAMIXB[4] Nil

🔁 Retorno

  • A função retorna o array aSegs, contendo os registros da tabela ZCU filtrados e processados pelo SQL dinâmico.

📄 Estrutura do Array aSegs:

  • aSegs[n][1]: ZCU_COD
  • aSegs[n][2]: ZCU_DESC (truncado em 50 caracteres)
  • aSegs[n][3]: ZCU_CODPAI
  • aSegs[n][4]: Flag de exclusão true/false
  • aSegs[n][5]: R_E_C_N_O_

Exemplo de execução:

User Function MP_CATPSQL
    local aCtaMps := PARAMIXB[1]
    local cFilMp := PARAMIXB[2]
    local cCtaMp := PARAMIXB[3]
    local nz := PARAMIXB[4]
    local aSegs := {}
    BEGINSQL alias "TMP"
            SELECT ZCU_COD,
                        ZCU_DESC,
                        ZCU_CODPAI,
                        D_E_L_E_T_ AS del,
                        R_E_C_N_O_ AS REC
            FROM %table:ZCU%
            WHERE D_E_L_E_T_ + ZCU_XMPTRA <> '* ' AND
                         ZCU_FILIAL = %exp:cFilEnt% AND
                         (ZCU_XMPTRA <> 'I' OR
                                NOT EXISTS(SELECT * FROM %TABLE:MP1% MP1 WHERE
                                                      MP1.MP1_FILIAL = %EXP:cFilMp% AND
                                                      MP1.MP1_CTAMP = %EXP:cCtaMp%  AND
                                                      MP1.MP1_IDPROT = ZCU_COD AND
                                                      MP1.MP1_TPREG = 'CATEGORIA' AND
                                                      MP1.D_E_L_E_T_ <> '*'))
            ORDER BY R_E_C_N_O_ %exp:cPaginac%
    ENDSQL
    while TMP->(!eof())
                   aadd(aSegs,{TMP->ZCU_COD,;
                   substr(alltrim(TMP->ZCU_DESC),1,50),;
                   TMP->ZCU_CODPAI,;
                   iif(!empty(TMP->del),"true","false"),;
                   TMP->REC})
             TMP->(DBSKIP())
    ENDDO
    TMP->(DBCLOSEAREA())
Return(aSegs)

Você achou esse artigo útil?

  • PE: MP_CABECPV

    📌 Documentação do Ponto de Entrada MP_CABECPV 🧩 Identificação ...
  • PE: MP_ITEMPV

    📌 Documentação do Ponto de Entrada MP_ITEMPV 🧩 Identificação N...
  • PE: MP_AITEMS

    📌 Documentação do Ponto de Entrada MP_AITEMS 🧩 Identificação N...
  • PE: MP_CATPGRV

    📌 Documentação do Ponto de Entrada MP_CATPGRV 🧩 Identificação ...
  • MP_CNFMAIL

    📌 Documentação do Ponto de Entrada MP_CNFMAIL 🧩 Identificação ...