Boa tarde.
Eu precisei disto uma vez (uma única vez) e fiz assim:
DEFINE TEMP-TABLE tt-param-atributo NO-UNDO
FIELD cod-param-atributo AS CHARACTER FORMAT "x(100)"
FIELD cod-valor-atributo AS CHARACTER FORMAT "x(100)".
DEFINE TEMP-TABLE tt-retorno-atributo NO-UNDO
FIELD cod-retorno-atributo AS CHARACTER FORMAT "x(100)"
FIELD cod-valor-atributo AS CHARACTER FORMAT "x(50)"
FIELD cod-origem AS CHARACTER
FIELD cod-reg-param AS CHARACTER.
DEFINE TEMP-TABLE tt-erro NO-UNDO
FIELD i-sequen AS INTEGER
FIELD cd-erro AS INTEGER
FIELD mensagem AS CHARACTER FORMAT "x(255)".
FIND FIRST nota-fiscal
WHERE <......>
NO-LOCK NO-ERROR.
FIND FIRST it-nota-fisc OF nota-fiscal
NO-LOCK NO-ERROR.
CREATE tt-param-atributo.
ASSIGN tt-param-atributo.cod-param-atributo = "ESTABEL"
tt-param-atributo.cod-valor-atributo = nota-fiscal.cod-estabel.
CREATE tt-param-atributo.
ASSIGN tt-param-atributo.cod-param-atributo = "EMIT"
tt-param-atributo.cod-valor-atributo = STRING(nota-fiscal.cod-emitente).
CREATE tt-param-atributo.
ASSIGN tt-param-atributo.cod-param-atributo = "DATAEMIS"
tt-param-atributo.cod-valor-atributo = STRING(nota-fiscal.dt-emis-nota, "99/99/9999").
CREATE tt-param-atributo.
ASSIGN tt-param-atributo.cod-param-atributo = "NATOPER"
tt-param-atributo.cod-valor-atributo = it-nota-fisc.nat-operacao.
CREATE tt-param-atributo.
ASSIGN tt-param-atributo.cod-param-atributo = "CLASFISC"
tt-param-atributo.cod-valor-atributo = it-nota-fisc.class-fiscal.
CREATE tt-param-atributo.
ASSIGN tt-param-atributo.cod-param-atributo = "ITEM"
tt-param-atributo.cod-valor-atributo = it-nota-fisc.it-codigo.
CREATE tt-param-atributo.
ASSIGN tt-param-atributo.cod-param-atributo = "UFDEST"
tt-param-atributo.cod-valor-atributo = nota-fiscal.estado.
RUN cdp/cdapi1100.p (INPUT TABLE tt-param-atributo,
OUTPUT TABLE tt-retorno-atributo,
OUTPUT TABLE tt-erro).
FOR EACH tt-retorno-atributo:
CASE tt-retorno-atributo.cod-retorno-atributo:
WHEN "CST-IPI" THEN DO:
ASSIGN c-cst-ipi = TRIM(tt-retorno-atributo.cod-valor-atributo).
END.
WHEN "CST-PIS" THEN DO:
ASSIGN c-cst-pis = TRIM(tt-retorno-atributo.cod-valor-atributo).
END.
WHEN "CST-COFINS" THEN DO:
ASSIGN c-cst-cofins = TRIM(tt-retorno-atributo.cod-valor-atributo).
END.
WHEN "CST-ICMS" THEN DO:
ASSIGN c-cst-icms = TRIM(tt-retorno-atributo.cod-valor-atributo).
END.
END CASE.
END.
Acho que assim vai conseguir o que precisa.
Att,
Marcelo Torres