Passar parâmetro para otro programa

Discussão em 'WebSpeed' iniciado por lwazevedo, Agosto 4, 2013.

  1. lwazevedo

    lwazevedo Membro Ativo

    Boa tarde.

    Pessoal gostaria de saber se existe a possibilidade de passar uma temp-table para outro programa quando chamo o mesmo.

    exemplo:

    run xxxxx.html(input temp-table).

    tem como fazer isso ?

    se sim, como posso fazer para usar ou pegar os dados do outro lado ?


    obrigado.
  2. LeandroSantos

    LeandroSantos Membro Participativo

    Voce pode passar o handle da temp-table, exemplo:
    run programa.p (input temp-table tt-tabela:handle).

    e no programa que vai receber o parametro:
    def input parameter hTT as handle.

    Neste caso no programa que esta recebendo a temp-table você terá que manipular a temp-table apenas usando o handle.

    Ou define uma shared temp-table, exemplo:
    Código:
    def new shared temp-table tt-tabela
       field codigo   as int
       field nome     as char.
    E no segundo programa:
    Código:
    def shared temp-table tt-tabela
       field codigo   as int
       field nome     as char.
    wellington curtiu isso.
  3. lwazevedo

    lwazevedo Membro Ativo

    beleza.


    Obrigado leandro.
  4. wellington

    wellington Membro Participativo

    Gostei porem tenho uma dúvida. Coloquei como exemplo esta definção de new shared em uma include, e queria chamar ela em todos os programas. Pelo o que eu percebi de seu código eu terei que definir ela novamente no outro programa com exceção do NEW ou então criar outra include. Teria alguma forma de fazer sem duplicar o código?

    Abraços
  5. Agnaldo

    Agnaldo Membro Ativo

    Acho que fica mais simples passar a temp mesmo, conforme exemplo abaixo.
    Obs: Mas é preciso atentar que o tópico original do lwazevedo trata de passar dados de/para programas web.

    PHP:
    /* programa1 */

    DEFINE TEMP-TABLE tt LIKE Customer.

    /* carrega a temp com dados da tabela Customer */
    FOR EACH Customer WHERE Customer.Cust-num > 10:
        
    CREATE tt.
        
    BUFFER-COPY Customer TO tt.
    END.
    /* passa os dados (temp) para o programa2 */
    RUN programa2.p (INPUT-OUTPUT TABLE tt).

    /* na volta, mostra o que "sobrou" da de registros */
    FOR EACH tt:
        
    DISPLAY tt.cust-num
                tt
    .name
        WITH TITLE 
    "Programa 1".
    END.
    PHP:
    /* programa2 */

    DEFINE TEMP-TABLE tt LIKE Customer.

    /* recece a temp como parametro */
    DEFINE INPUT-OUTPUT PARAMETER TABLE FOR tt.

    /* mostra os dados dela recebidos */
    FOR EACH tt:
        
    DISPLAY tt.cust-num
                tt
    .name
        WITH TITLE 
    "Programa 2".

        
    /* apaga codigo maior que 20 */
        
    IF tt.cust-num > 20
          THEN
              DELETE tt
    .
    END.
    /* nesse ponto tt possui cust-num > 10 e < 20, que é o que volta na temp para programa1 */
    Última edição: Dezembro 30, 2013
    fdantas curtiu isso.

Compartilhe esta Página