Ayuda con bapi

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • stormshadow
    Senior Member
    • jun
    • 117

    #1

    Ayuda con bapi

    Que tal gente de mundosap, bueno ps otra vez yo con mis dudassss, y en esta ocasión me gustaría saber si alguién tuvíera de casualidad un ejemplo de una bapi, es la BAPI_PO_CREATE necesito implementarla a un programa nuevo para hacer una orden de compra, e hallado algunos ejemplos pero no me funcan ojalá y alguién pueda ayudarme.
    Desde ya muchas gracias
    "Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein
  • PercyFloresSotelo
    Member
    • jul
    • 66

    #2
    Hola, checa este link a ver si te ayuda de algo si no pasa la voz:





    saludos......................
    ----
    "Hay dos tipos de inteligencia: la ocasional y la del trabajo. La primera depende de la suerte, la segunda es fruto del intercambio de horas por conocimientos."

    ____________________
    Percy Flores Sotelo
    Consultor SAP / CO - ABAP
    www.Ferreyros.com.pe
    Ferreyros - Perú

    Comentario

    • stormshadow
      Senior Member
      • jun
      • 117

      #3
      jeje de hecho ese post ya lo había checado, bueno en esto de las bapis soy totalmente nuevo y estoy en 0, así que no comprendí varias cosas, de entrada veo algunas tablas internas que no sé como declararlas

      Código:
      itab_doc_item,
      itab_item_update,
      itab_doc_sched,
      itab_schd_update,
      itab_doc_cond,
      itab_cond_update,
      wa_doc_header.
      Algunas com por ejemplo el doc item o doc sched ps si sabría pero las otras no, y aparte tienen que ser obligatorias todas?? Gracias por la ayuda
      "Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein

      Comentario

      • eljota
        Member
        • dic
        • 48

        #4
        un dato...

        Originalmente publicado por stormshadow
        jeje de hecho ese post ya lo había checado, bueno en esto de las bapis soy totalmente nuevo y estoy en 0, así que no comprendí varias cosas, de entrada veo algunas tablas internas que no sé como declararlas

        Código:
        itab_doc_item,
        itab_item_update,
        itab_doc_sched,
        itab_schd_update,
        itab_doc_cond,
        itab_cond_update,
        wa_doc_header.
        Algunas com por ejemplo el doc item o doc sched ps si sabría pero las otras no, y aparte tienen que ser obligatorias todas?? Gracias por la ayuda
        siempre q tengas dudas de como declarar una variable, tabla, etc... q será recibida por una funcion, lo mejor es hacer doble clic en el nombre de la funcion q estas usando, me parece q es:

        CALL FUNCTION 'BAPI_PO_CREATE1'

        xq veo q mandas la tabla itab_doc_item y buscas al inicio de ese programa como se declara la tabla poitem que es la q lo recibe.

        salu2
        Jaime Zegarra V.
        ________________
        ABAP Developer

        Comentario

        • stormshadow
          Senior Member
          • jun
          • 117

          #5
          Que tal gente, bueno pues tomé un ejemplo que encontré en otro foro, pero tengo un leve problemita... me tira un error miren les dejo el código:

          Código:
          DATA: s_po_header                LIKE      bapiekkoc.
          DATA : ti_po_items               LIKE      bapiekpoc OCCURS 0 WITH
          HEADER LINE,
                 ti_po_item_schedules      LIKE      bapieket OCCURS 0 WITH
          HEADER LINE,
                 ti_return                 LIKE      bapireturn OCCURS 0 WITH
          HEADER LINE,
                 ti_afs_po_items           LIKE      /afs/bapiekpo2 OCCURS 0
          WITH HEADER LINE,
                 ti_afs_po_item_schedules  LIKE      /afs/bapieket2 OCCURS 0
          WITH HEADER LINE.
          
          
          DATA : v_purchaseorder       LIKE      bapiekkoc-po_number.
          
          SELECTION-SCREEN BEGIN OF BLOCK block01 WITH FRAME TITLE text-001.
            SKIP 1.
            PARAMETER: p_vendor LIKE s_po_header-vendor OBLIGATORY.
            ULINE.
            SKIP 1.
          SELECTION-SCREEN END OF BLOCK block01.
          
          CLEAR s_po_header.
          
          **Cabecera EKKO.
          s_po_header-doc_type = 'PGOC'.   "Clase de documento de compras
          *s_po_header-suppl_plnt = 'Z000'.  " Centro suministrador en el pedido
                                            "de transporte
          s_po_header-doc_date = sy-datum. "Fecha del documento de compras
          s_po_header-co_code = '0200'.  "Sociedad
          s_po_header-pur_group = 'G03'.   "Grupo de compras
          s_po_header-purch_org = 'OC02'.  "Organización de compras
          s_po_header-vendor = p_vendor. "Proveedor
          s_po_header-langu = sy-langu.
          **Fin Cabecera
          
          ***Posiciones EKPO.
          CLEAR ti_po_items.
          ti_po_items-po_item = 10. "Número de posición del documento de compras
          ti_po_items-material = '000000021033017002'. "Número de material
          ti_po_items-pur_mat = '000000021033017002'. "Número de material
          ti_po_items-store_loc = 'B001'. "Almacén
          ti_po_items-plant = 'B001'. "Centro
          ti_po_items-item_cat = ''. "Tipo de posición del documento de compras.
          ti_po_items-unit = 'PAA'. "Unidad de medida de pedido
          APPEND ti_po_items.
          
          CLEAR ti_afs_po_items.
          ti_afs_po_items-po_item = 10. "Número de posición del documento de
                                        "compras
          ti_afs_po_items-grid_number = '000000021033017002'. "Número de material
          APPEND ti_afs_po_items.
          
          
          ***Fin Posiciones EKPO.
          *
          *Reparto EKET.
          CLEAR ti_po_item_schedules.
          ti_po_item_schedules-po_item = '10'. "Número de posición del documento
                                              "de compras.
          ti_po_item_schedules-serial_no = ''. "Contador de repartos.
          ti_po_item_schedules-quantity = '12'. "Cantidad de reparto.
          ti_po_item_schedules-deliv_date = sy-datum. "Fecha de Entrega.
          APPEND ti_po_item_schedules.
          
          
          CLEAR ti_afs_po_item_schedules.
          ti_afs_po_item_schedules-item_number = 10. "Número de posición del
                                                    "documento de compras.
          *ti_afs_po_item_schedules-del_sche_number = 10. "Contador de repartos.
          ti_afs_po_item_schedules-sche_line_no = 1.
          ti_afs_po_item_schedules-sch_size = '1501150'. "Valor matriz
          ti_afs_po_item_schedules-quantity1 = 12. "Cantidad
          ti_afs_po_item_schedules-ordered_qty = 12. "Cantidad pedida.
          ti_afs_po_item_schedules-deadline_date = sy-datum. "Fecha de Entrega.
          APPEND ti_afs_po_item_schedules.
          
          
          ***Fin Reparto EKET.
          
          CALL FUNCTION 'BAPI_PO_CREATE'
            EXPORTING
              po_header                        = s_po_header
          *   PO_HEADER_ADD_DATA               =
          *   HEADER_ADD_DATA_RELEVANT         =
          *   PO_ADDRESS                       =
          *   SKIP_ITEMS_WITH_ERROR            = 'X'
          *   ITEM_ADD_DATA_RELEVANT           =
          *   HEADER_TECH_FIELDS               =
           IMPORTING
             purchaseorder                    = v_purchaseorder
            TABLES
              po_items                         = ti_po_items
          *   PO_ITEM_ADD_DATA                 =
              po_item_schedules                = ti_po_item_schedules
          *   PO_ITEM_ACCOUNT_ASSIGNMENT       =
          *   PO_ITEM_TEXT                     =
              return                           = ti_return
          *   PO_LIMITS                        =
          *   PO_CONTRACT_LIMITS               =
          *   PO_SERVICES                      =
          *   PO_SRV_ACCASS_VALUES             =
          *   PO_SERVICES_TEXT                 =
          *   PO_BUSINESS_PARTNER              =
          *   EXTENSIONIN                      =
          *   POADDRDELIVERY                   =
             afs_po_items                     = ti_afs_po_items
             afs_po_item_schedules            = ti_afs_po_item_schedules.
          
          IF NOT v_purchaseorder IS INITIAL.
            CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
             EXPORTING
               wait          = 'X'
          *           IMPORTING
          *             RETURN        =
                      .
            WRITE : / v_purchaseorder.
            LOOP AT ti_return.
              WRITE: / ti_return-message.
            ENDLOOP.
          ELSE.
            CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
          
            LOOP AT ti_return.
              WRITE: / ti_return-message.
            ENDLOOP.
          
          ENDIF.
          Los datos que le estoy metiendo estan correctos, pues se puede crear una orden a mano, o sea en la transacción directa, pero cuando yo ejecuto mi reporte, me aparece este error:

          Error en el cálculo del precio neto, posición 000010 (corregir).

          Alguién sabe que podría estar pasando? Gracias de antemano!
          "Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein

          Comentario

          • bisonye
            Senior Member
            • ago
            • 635

            #6
            Es posible que la bapi no te haga el cálculo del precio como te hace la transacción. Prueba a poner un precio aunque sea falso y si funciona bien ahí tienes tu error.

            Saludos
            http://sapymas.blogspot.com/

            Comentario

            • stormshadow
              Senior Member
              • jun
              • 117

              #7
              Pero porque razón no me haría el cálculo? y si ese fuera el error de que manera podría resolverlo? pues yo pienso que también puede ser que le falte algún dato a la bapi, que le falte pasar algún parametro o algo así....
              "Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein

              Comentario

              • bisonye
                Senior Member
                • ago
                • 635

                #8
                Pues la razón no la se. De hecho es una suposición, no tiene por que estar ocurriendo eso. Primero de todo yo usaría la BAPI_PO_CREATE1 (tu estás usando sin uno). Segundo, si con los datos de pantalla no te crea el pedido crea uno a mano y revisa las tablas para poner todos los campos. Cuando crees el pedido con la bapi prueba a ir eliminando campos hasta que tengas el mínimo necesario para que funcione.

                Desde luego los precios deberían salir automáticos, seguramente es lo que indicas, te falta algún valor (centro de coste, almacén, tipo de imputación, pueden ser muchas cosas)

                Saludos
                http://sapymas.blogspot.com/

                Comentario

                • stormshadow
                  Senior Member
                  • jun
                  • 117

                  #9
                  Es que de hecho se a creado una a mano con esos datos y la crea correctamente oye y esa bapi que tú mencionas se utiliza de la misma manera?? o que es lo que cambia? y tú la has utilizado ya?
                  "Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein

                  Comentario

                  • bisonye
                    Senior Member
                    • ago
                    • 635

                    #10
                    La bapi es prácticamente idéntica, pero más moderna. Las diferencias las desconozco. Sobre el pedidio manual si revisas las TABLAS verás que una cosa es lo que pones a mano y otra son los datos que se guardan. Se pueden poner muchos datos por customizing o por exits o ampliaciones. La parte de customizing si no me equivoco sí que se traspasa a las bapis pero la parte de código no standard no.

                    Saludos
                    http://sapymas.blogspot.com/

                    Comentario

                    • stormshadow
                      Senior Member
                      • jun
                      • 117

                      #11
                      ey brother, ya quedó lista! te hize caso, utilizé la po_create1 y pues con eso funcionó, la re-adapté de otra manera probe de una manera distinta y funcionó wiiii muchas gracias men
                      "Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein

                      Comentario

                      • xazethesun
                        Junior Member
                        • jul
                        • 5

                        #12
                        Duda

                        Originalmente publicado por stormshadow
                        ey brother, ya quedó lista! te hize caso, utilizé la po_create1 y pues con eso funcionó, la re-adapté de otra manera probe de una manera distinta y funcionó wiiii muchas gracias men
                        Disculpa tendrias un ejemplo de como utilizaste la bapi_po_create1. esto intentanto utilizarla pero me sigue dando problemas con el precio neto, tal i como posteabas.

                        gracias

                        Comentario

                        • stormshadow
                          Senior Member
                          • jun
                          • 117

                          #13
                          claro que si men, si gustas puedo mandarte mi ejemplo por correo
                          "Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein

                          Comentario

                          • juany bernuy curo
                            Junior Member
                            • may
                            • 19

                            #14
                            SOS Error en el cálculo del precio neto, posición 000010 (corregir)"

                            Hola: Cómo estas?
                            Vi que este problema te sucedió hace un para de años. Podrías porfa replicarme tu solución. si no te es molestia, y tengas tiempo, envía a mi correo, es jcbernuyc@hotmail.com. Mi nombre es juany. saludos desde Perú.
                            MUCHAS GRACIAS y que estés muy bien.
                            juany

                            Comentario

                            • vrpascual
                              Junior Member
                              • nov
                              • 22

                              #15
                              Fecha Embarque????

                              Originalmente publicado por stormshadow
                              claro que si men, si gustas puedo mandarte mi ejemplo por correo
                              Buenas tardes, cuando utilizaste la BAPI_TO_CREATE1 pasaste la fecha de embarque?
                              porque tengo que pasarlo y no encuentro el campo

                              Gracias, Saludos.

                              Comentario

                              Trabajando...