Consulta BAPI_MATERIAL_AVAILABILITY con JCO

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • prodriguez
    Junior Member
    • nov
    • 2

    #1

    Consulta BAPI_MATERIAL_AVAILABILITY con JCO

    Buenos días, mi nombre es Pablo Rodriguez, soy nuevo en el foro.
    Hace poco empece a programar una interfaz para conectar mi sistema con SAP, para la interfaz estoy usando el conector provisto por sap JCO 3 y java 1.6.
    Quiero Ejecutar la BAPI "BAPI_MATERIAL_AVAILABILITY" para obtener una consulta de stock pero al ejecutarla no me devuelve ningún resultado cosa que es errónea ya que en sap puedo visualizar que si hay datos.

    Este es el código que utilizo para ejecutar dicha función

    Código:
    JCoFunction function = connect.getFunction("BAPI_MATERIAL_AVAILABILITY");
    function.getImportParameterList().setValue("PLANT", "AR51");
    function.getImportParameterList().setValue("UNIT", "CXT");
    function.getImportParameterList().setValue("MATERIAL", "7015738");
    connect.execute(function);
    
    JCoStructure returnStructure = function.getExportParameterList().getStructure( "RETURN" );
    System.out.println(returnStructure);
    
    JCoTable codes = function.getTableParameterList().getTable(
    				"WMDVEX");
    System.out.println("la funcion devolvio: " + codes .getNumRows() + " rows");
    pero lo que obtengo después de ejecutar dicho código es:

    |-|-----|-------...
    | STRUCTURE 'BAPIRETURN'
    |-|-----|-------...
    |T|CODE |MESSAGE..
    |-|-----|-------...
    |0|12345|67890123....
    |-|-----|-------...
    |W|M3351|Material 15738 . . en el centro AR51 no actualizado.
    |-|-----|-------...

    la función devolvió: 0 rows

    Alguien sabe porque puede ser que se este dando este problema?
  • Flatron
    Member
    • ago
    • 78

    #2
    conseguiste solucionarlo??

    Yo estoy interesado en obtener también el stock de los materiales de SAP para dar uso el dato en otra aplicación.

    Comentario

    • prodriguez
      Junior Member
      • nov
      • 2

      #3
      hola si pude solucionarlo, el problema se daba porque sap espera como codigo de material un nro de 18 cifras.
      para solucionarlo que hice fue lo siguiente

      Código:
      NSNumberFormatter f = new NSNumberFormatter("00000000000000000#");
      JCoFunction function = connect.getFunction("BAPI_MATERIAL_AVAILABILITY");
      function.getImportParameterList().setValue("PLANT", "AR51");
      function.getImportParameterList().setValue("UNIT", "CXT");
      function.getImportParameterList().setValue("MATERIAL", f.format(new Integer("7015738")));
      connect.execute(function);
      yo use el NSNumberFormatter ya que trabajamos con webobject de apple pero cualquier formateador sirve.

      Saludos

      Comentario

      Trabajando...