📌 Documentação do Ponto de Entrada MP_CATPSQL
🧩 Identificação
- Nome do Ponto de Entrada:
MP_CATPSQL - Objetivo: Consultar categorias na tabela
ZCUaplicando filtros de exclusão e integração, retornando os dados no arrayaSegs. - Programa: NOVO4 (sincronização de Entidades de Entrada)
- Localização: Consulta SQL dinâmica usando
BEGINSQLna tabelaZCU
📥 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 tabelaZCUfiltrados e processados pelo SQL dinâmico.
📄 Estrutura do Array aSegs:
aSegs[n][1]: ZCU_CODaSegs[n][2]: ZCU_DESC (truncado em 50 caracteres)aSegs[n][3]: ZCU_CODPAIaSegs[n][4]: Flag de exclusão true/falseaSegs[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)
|