Acesso a programas (RPG) no AS/400

Pessoal, alguem ja fez um acesso destes?

Acessar uma tabela eu consegui, mas estamos precisanso acessar um RPG no AS/400…

Alguma sujestão? Estou procurando no google desde cedo :cry:

P.S Nao sabia se o forum a postar deveria ser este mesmo ou o java avançado…

Obrigado!

Voce tem um processo Java e quer se comunicar com um processo RPG? Nao tenho ideia de como seria isso, mas vou dar uns chutes (ja fiz isso com COBOL - acho que tem alguma relacao):

  • utilizar filas para comunicacao (MQ p.ex.).
  • procure por conectores (JCA).

Marcio Kuchma

Na verdade você pode usar um emulador de terminal para automatizar o processo, entao o que voce está fazendo realmente é simplesmente acessando o sistema via terminal o que é bom por manter o ambiente para o qual a aplicacao (RPG) foi escrita …

Eu vi alguns para nós mas o projeto ainda nao saiu e eu nao trabalhei efetivamente com nenhum:
http://www.jacada.com/Products/integration_mainframe/
http://www.flynet.co.uk/
http://www.applinx.com/

De longe o Jacada parece mais completo, mas talvez tenha coisa demais (é caro pacas) … o da Flynet me atende, principalmente porque o suporte é excelente (os caras ligaram aqui e deram suporte durante toda a pesquisa).

Ah … nao se engane, mesmo o da Flynet que eh o mais baratim fica perto de US$14.000,00 para 5 usuários concorrentes :shock:

Ah(2) … a tecnologia pra isso tudo é JCA mesmo.

Valeu pessoal, consegui depois de um dia inteiro de surra!

  try
      {
         Class.forName("com.ibm.as400.access.AS400JDBCDriver").newInstance();
      }
      catch ( Exception e )
      {
         out.print("<br>Failed attempt to load AS/400 or Toolbox driver");
         out.close();
      }

      out.print("<br>Criando Obj AS400...");
      out.flush();
      AS400 as = new AS400("192.168.0.2","login","senha");
      out.print("<br>Obj AS400 Criado.");
      out.flush();

      try
      {
         out.print("<br>Conectando ao AS400...");
         out.flush();
         as.connectService(AS400.DATABASE);
         out.print("<br>Conexão OK...");
         out.flush();
      }
      catch ( Exception e )
      {
         e.printStackTrace();
         out.print("<br>Erro na conexão...");
         out.close();
      }
                                                                 //F00950
      out.print("<br>Executar programa LIB/PROGRAMA...");
      out.flush();

      String vParm1 = request.getParameter("edtPARM_1") + " ";
      String vParm2 = request.getParameter("edtPARM_2") + "          ";
      String vParm3 = request.getParameter("edtPARM_3") + "          ";
      vParm1 = vParm1.substring(0,1);
      vParm2 = vParm2.substring(0,10);
      vParm3 = vParm3.substring(0,10);

      String commandString = " CALL PGM(LIB/PROGRAMA) PARM('" + vParm1 + "' '" + vParm2 + "' '" + vParm3 + "')";

      CommandCall command = new CommandCall( as );

       try
       {
          if (command.run(commandString))
          {
    

aaa bão, nao sao as telinhas, só chamada mesmo :oops:

assim eh mais baratim :?

Acho que eu tava apanhando de graça :?