MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 18/05/24, 18:46:18
laureano59 laureano59 is offline
Junior Member
 
Fecha de Ingreso: ene 2012
Mensajes: 8
Smile BAPI para crear factura a partir de una entrega YA contabilizada

Hola ABAPEROS.
Espero que todos se encuentren bien.

Necesito una BAPI que me genere una factura a partir de una entrega que ya está contabilizada.

Para no hacerles perder tiempo voy a a hacer puntual con lo que exactamente necesito:

Debo hacer cuatro programas Z uno que haga lo de la trx VA01, otro lo de la trx VL01N, otro lo de la VL02N, hasta ahí todo sin problema ya los tengo hechos.

PERO no he podido encontrar una BAPI que me haga lo mismo que la trx VF01, las que he probado son para generar factura a partir del pedido pero eso ya lo tengo, necesito generar la factura a partir de una entrega que ya está contabilizada.

Estas son las BAPI que ya he usado:
BAPI_BILLINGDOC_CREATEMULTIPLE : Me genera la factura pero cuando voy y reviso por la VF01 con el número de entrega es como si aun no fuera generado la factura.

Llevo ya dos semanas y no he podido lograrlo.

Agradezco si tiene algún programa que hayan hecho y que me pueda ser de ayuda para poder generar la factura a partir de una entrega que ya está contabilizada.

Bendiciones a todos.
Responder Con Cita
  #2  
Viejo 30/05/24, 01:46:29
laureano59 laureano59 is offline
Junior Member
 
Fecha de Ingreso: ene 2012
Mensajes: 8
Re: BAPI para crear factura a partir de una entrega YA contabilizada

Debido a que nadie ha dado una respuesta, les dejo la soluci%u00F3n por si alguien lo requiere:

FUNCTION z_mfsd_gdc0079.
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" VALUE(REF_DOC) TYPE VGBEL
*" EXPORTING
*" VALUE(NUM_FACTURA) TYPE BILL_DOC
*" TABLES
*" LT_RETURN STRUCTURE BAPIRET2
*"----------------------------------------------------------------------

* Declaraci%u00F3n de tablas internas
DATA: lt_billing_data_in TYPE TABLE OF bapivbrk,
lt_success TYPE TABLE OF bapivbrksuccess,
lt_entrega TYPE TABLE OF lips.

* Declaraci%u00F3n de estructuras
DATA: ls_billing_data_in TYPE bapivbrk,
ls_success TYPE bapivbrksuccess,
ls_return TYPE bapiret1,
ls_entrega TYPE lips.

* Declaraci%u00F3n de variables
DATA: lv_cliente TYPE vbak-kunnr, " Cliente
lv_pedido TYPE lips-vgbel, "Pedido
lv_vkorg TYPE likp-vkorg, "Organizaci%u00F3n de ventas
lv_auart TYPE vbak-auart, "Clase de documento de ventas
lv_fkara TYPE tvak-fkara, "Clase de factura propuesta para una factura por pedido
lv_vbtyp TYPE vbak-vbtyp. "Tipo de documento


* Obtener el cliente desde la entrega
CLEAR: lv_cliente, lv_vkorg.
SELECT SINGLE kunnr vkorg
INTO (lv_cliente, lv_vkorg)
FROM likp
WHERE vbeln = ref_doc. " N%u00FAmero de entrega

* Recupero el n%u00FAmero de pedido a partir de la entrega
CLEAR lv_pedido.
SELECT SINGLE vgbel
INTO lv_pedido
FROM lips
WHERE vbeln = ref_doc.

* Recupero datos de la tabla VBAK este es la clase de doc de ventas
CLEAR: lv_auart, lv_vbtyp.
SELECT SINGLE auart vbtyp
INTO (lv_auart, lv_vbtyp)
FROM vbak
WHERE vbeln = lv_pedido.

" Obtener la clase de factura propuesta (Order Billing Type) desde la tabla TVAK
CLEAR lv_fkara.
SELECT SINGLE fkara
INTO lv_fkara
FROM tvak
WHERE auart = lv_auart.

* Recupero los datos del pedido
REFRESH lt_entrega.
SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_entrega
FROM lips
WHERE vbeln = ref_doc.

IF sy-subrc = 0.
LOOP AT lt_entrega INTO ls_entrega.
CLEAR: ls_billing_data_in.
ls_billing_data_in-salesorg = lv_vkorg. " Organizaci%u00F3n de ventas
ls_billing_data_in-distr_chan = ls_entrega-vtweg. " Canal de distribuci%u00F3n
ls_billing_data_in-division = ls_entrega-spart. " Divisi%u00F3n (Sector)
ls_billing_data_in-doc_type = lv_auart. " Tipo de documento de facturaci%u00F3n - Clase de documento de venta ZTA
ls_billing_data_in-ref_doc = ls_entrega-vbeln. " N%u00FAmero de entrega
ls_billing_data_in-item_categ = ls_entrega-pstyv. "Tipo de posici%u00F3n de documento comercial
ls_billing_data_in-doc_number = ls_entrega-vbeln. "Entrega
ls_billing_data_in-itm_number = ls_entrega-posnr. "Posici%u00F3n del documento de venta
ls_billing_data_in-ordbilltyp = lv_fkara. "Clase de factura propuesta para una factura por pedido
ls_billing_data_in-price_date = sy-datum. "Fecha para la determinaci%u00F3n de precios y tipo de cambio
ls_billing_data_in-ref_doc_ca = lv_vbtyp. "Categor%u00EDa del documento comercial anterior
ls_billing_data_in-sold_to = lv_cliente. "Solicitante
ls_billing_data_in-material = ls_entrega-matnr. " Material
ls_billing_data_in-plant = ls_entrega-werks. " Planta
ls_billing_data_in-ref_doc_ca = 'J'.
"ls_billing_data_in-req_qty = ls_entrega-kwmeng. "Cantidad de pedido acumulada en unidades de ventas
"ls_billing_data_in-sales_unit = ls_entrega-vrkme. "Unidad de ventas
"ls_billing_data_in-currency = ls_entrega-waerk. "Moneda del documento SD (SD document currency)
APPEND ls_billing_data_in TO lt_billing_data_in.
ENDLOOP.
ENDIF.

* Llamar a la BAPI para crear la factura
CALL FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE'
TABLES
billingdatain = lt_billing_data_in
return = lt_return
success = lt_success.

* Guarda si no hay errores
CLEAR: ls_return.
READ TABLE lt_return INTO ls_return WITH KEY type = 'E'.
IF sy-subrc <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
* Mostrar el n%u00FAmero de la factura creada
LOOP AT lt_success INTO ls_success.
num_factura = ls_success-bill_doc.
ENDLOOP.
ENDIF.

ENDFUNCTION.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 05:38:03.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web