SAP SD BAPI VA01
From SapWiki
Ejemplo 1
FORM f_pedido_venta USING i_kunnr i_werks CHANGING p_documento TYPE vbak-vbeln o_datos_pedido LIKE gt_datos_pedido[]. DATA: ls_header TYPE bapisdhd1, lt_partners TYPE STANDARD TABLE OF bapiparnr, ls_partner TYPE bapiparnr, lt_items TYPE STANDARD TABLE OF bapisditm, ls_item TYPE bapisditm, lt_schedule TYPE STANDARD TABLE OF bapischdl, ls_schedule TYPE bapischdl, lt_condiciones TYPE STANDARD TABLE OF bapicond, ls_condicion TYPE bapicond, lt_return TYPE STANDARD TABLE OF bapiret2, ls_return TYPE bapiret2, posicion(6) TYPE n. DATA detalle LIKE LINE OF o_datos_pedido. CLEAR: ls_header, lt_items[], lt_condiciones[], lt_partners[], lt_schedule[], lt_return[]. ls_header-doc_type = 'PSER'. ls_header-sales_org = 'PTG'. ls_header-distr_chan = 'PT'. ls_header-division = 'PT'. ls_header-req_date_h = sy-datlo. ls_partner-partn_role = 'AG'. ls_partner-partn_numb = i_kunnr. APPEND ls_partner TO lt_partners. posicion = '0'. LOOP AT o_datos_pedido INTO detalle. CLEAR: ls_item, ls_condicion, ls_schedule. posicion = posicion + 10. ls_item-itm_number = posicion. ls_item-material = detalle-matnr. ls_item-short_text = detalle-maktx. ls_item-plant = i_werks. APPEND ls_item TO lt_items. ls_condicion-itm_number = posicion. ls_condicion-cond_type = 'PCOND'. DATA ld_monto LIKE bapicurr-bapicurr. CALL FUNCTION 'BAPI_CURRENCY_CONV_TO_EXTERNAL' EXPORTING currency = detalle-waerk amount_internal = detalle-kwert IMPORTING amount_external = ld_monto. ls_condicion-cond_value = ld_monto. ls_condicion-currency = detalle-waerk. APPEND ls_condicion TO lt_condiciones. ls_schedule-itm_number = posicion. ls_schedule-req_qty = detalle-menge. APPEND ls_schedule TO lt_schedule. ENDLOOP. CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2' EXPORTING order_header_in = ls_header behave_when_error = space IMPORTING salesdocument = p_documento TABLES return = lt_return order_items_in = lt_items order_partners = lt_partners order_schedules_in = lt_schedule order_conditions_in = lt_condiciones. IF p_documento IS NOT INITIAL. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X' IMPORTING return = ls_return. * Pedido de Venta grabado MESSAGE ID 'V1' TYPE 'S' NUMBER '311' WITH 'Pedido de Venta'(s01) p_documento. ELSE. LOOP AT lt_return INTO ls_return WHERE type = 'E'. MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number WITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4. EXIT. ENDLOOP. ENDIF. ENDFORM. "f_pedido_venta
Crear pedido con referencia a factura
En SAP no existe una BAPI para crear una orden de venta con referencia a otros documentos, como otros pedidos, ofertas, etc. Solución ver Nota SAP 370988
FUNCTION Z_SD_CREA_PEDIDO_CON_REF_FACT. *"---------------------------------------------------------------------- *"*"Interfase local *" IMPORTING *" REFERENCE(I_AUART) LIKE VBAK-AUART DEFAULT 'ZFIN' *" REFERENCE(I_VBELN) LIKE VBRK-VBELN *" REFERENCE(I_MONTO) TYPE ACBTR *" REFERENCE(I_WAERS) TYPE WAERS *" REFERENCE(I_COMMIT) TYPE CHAR1 DEFAULT SPACE *" REFERENCE(I_VERSION) TYPE VSNMR_V OPTIONAL *" EXPORTING *" REFERENCE(O_SALESDOCUMENT) LIKE BAPIVBELN-VBELN *" TABLES *" I_T_SALESDOCUMENTS STRUCTURE SALES_KEY OPTIONAL *" O_T_RETURN STRUCTURE BAPIRET2 OPTIONAL *"---------------------------------------------------------------------- ls_bapi_view-header = 'X'. ls_bapi_view-item = 'X'. ls_bapi_view-sdschedule = 'X'. ls_bapi_view-sdcond = 'X'. ls_bapi_view-partner = 'X'. ls_bapi_view-BUSINESS = 'X'. select single aubel into ls_salesdocuments from vbrp where vbeln = i_vbeln. append ls_salesdocuments to lt_salesdocuments. CALL FUNCTION 'BAPISDORDER_GETDETAILEDLIST' EXPORTING i_bapi_view = ls_bapi_view * I_MEMORY_READ = TABLES sales_documents = lt_salesdocuments order_headers_out = lt_order_headers_out order_items_out = lt_order_items_out order_schedules_out = lt_order_schedules_out order_partners_out = lt_order_partners_out order_conditions_out = lt_order_conditions_out order_business_out = lt_order_business_out . ************************************************************************ ** PREPARE DATA clear lt_order_items_in[]. clear lt_order_partners[]. clear lt_order_schedules_in[]. clear lt_order_conditions_in[]. * fill header data IF NOT lt_order_headers_out[] IS INITIAL. READ TABLE lt_order_headers_out INTO ls_header_out INDEX 1. * fill header data perform fill_header using i_auart i_vbeln i_version. * fill header business data perform fill_header_business. * fill partner data perform fill_partners. endif. * ORDER_ITEMS_IN select single matnr werks zterm from ZSD_MAT_INTERES into (ls_order_items_in-material, ls_order_items_in-plant, ls_order_header_in-PMNTTRMS) where vkorg = ls_header_out-SALES_ORG. ls_order_items_in-po_itm_no = '0010'. * ls_order_items_in-material = '000000000000040383'. * ls_order_items_in-plant = '700P'. APPEND ls_order_items_in TO lt_order_items_in. * ORDER_SCHEDULE_IN ls_order_schedules_in-itm_number = '0010'. ls_order_schedules_in-req_qty = '1'. APPEND ls_order_schedules_in TO lt_order_schedules_in. * ORDER_CONDITIONS_IN ls_order_conditions_in-itm_number = '0010'. ls_order_conditions_in-cond_type = 'ZFIN'. ls_order_conditions_in-cond_value = i_monto. ls_order_conditions_in-currency = i_waers. APPEND ls_order_conditions_in TO lt_order_conditions_in. *fill logic switch * lv_logic_switch-pricing = i_prart. clear o_t_return[]. CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2' EXPORTING * SALESDOCUMENTIN = order_header_in = ls_order_header_in logic_switch = lv_logic_switch IMPORTING salesdocument = o_salesdocument TABLES return = o_t_return order_items_in = lt_order_items_in order_partners = lt_order_partners order_schedules_in = lt_order_schedules_in order_conditions_in = lt_order_conditions_in . if o_salesdocument is not initial. if i_commit = 'X'. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = 'X' * IMPORTING * RETURN = . endif. endif. ENDFUNCTION. FORM add_schedules using i_qty. "add schedules to item LOOP AT lt_order_schedules_out INTO ls_schedules_out WHERE itm_number = ls_item_out-itm_number and DOC_NUMBER = ls_item_out-DOC_NUMBER . * ls_order_schedules_in-itm_number = ls_schedules_out-itm_number. ls_order_schedules_in-itm_number = ld_item_number. IF NOT i_qty IS INITIAL AND NOT ls_schedules_out-req_qty = 0. ls_order_schedules_in-req_qty = i_qty. ELSE. ls_order_schedules_in-req_qty = ls_schedules_out-req_qty. ENDIF. ls_order_schedules_in-sched_line = ls_schedules_out-sched_line. APPEND ls_order_schedules_in TO lt_order_schedules_in. ENDLOOP. IF sy-subrc <> 0. ls_order_schedules_in-itm_number = ls_item_out-itm_number. ls_order_schedules_in-sched_line = '001'. ls_order_schedules_in-req_qty = i_qty. APPEND ls_order_schedules_in TO lt_order_schedules_in. ENDIF. ENDFORM. " add_schedules *&---------------------------------------------------------------------* *& Form add_items *&---------------------------------------------------------------------* FORM add_items . CONSTANTS: kzvbr_e TYPE c VALUE 'E', " Einzelfertigung vkgru_rep_reparaturanfo LIKE vbap-vkgru VALUE 'I01'. * ls_order_items_in-itm_number = ls_item_out-itm_number. * MOVE-CORRESPONDING ls_item_out to ls_order_items_in. ls_order_items_in-itm_number = ld_item_number. ls_order_items_in-material = ls_item_out-material. * ls_order_items_in-ref_doc = pa_key. ls_order_items_in-ref_doc = ls_item_out-DOC_NUMBER. ls_order_items_in-ref_doc_it = ls_item_out-itm_number. ls_order_items_in-ref_doc_ca = ls_header_out-sd_doc_cat. ls_order_items_in-PLANT = ls_item_out-PLANT. "centro ls_order_items_in-STore_LOC = ls_item_out-STGE_LOC. "almacen ls_order_items_in-MAT_ENTRD = ls_item_out-MAT_ENTRD. "material introducido ; ls_order_items_in-MATL_GROUP = ls_item_out-MATL_GROUP. "grupo de articulos; ls_order_items_in-SHORT_TEXT = ls_item_out-SHORT_TEXT."Texto breve posición de pedido de cliente; ls_order_items_in-VAL_TYPE = ls_item_out-VAL_TYPE ."clase de valoración; ls_order_items_in-PROD_HIERa = ls_item_out-PROD_HIER."jerarquía de productos; ls_order_items_in-PR_REF_MAT = ls_item_out-PR_REF_MAT. "Material determinante del precio; * ls_order_items_in-BASE_UOM = ls_item_out-BASE_UOM."Unidad de medida base; ls_order_items_in-SALES_UNIT = ls_item_out-SALES_UNIT . "Cantidad de pedido acumulada (en unidades de venta); ls_order_items_in-SALQTYNUM = ls_item_out-SALES_QTY1. "Numerador (factor) p.conversión cantidad venta en UMA; ls_order_items_in-SALQTYDEN = ls_item_out-SALES_QTY2. "Denominador (divisor) p.conversión ctd.venta en UMA; * IF NOT ls_item_out-REPAIR_PRO EQ VKGRU_REP_REPARATURANFO. * ls_order_items_in-REPAIR_PRO = ls_item_out-REPAIR_PRO. "Gestión de reparaciones: Clasificación de posiciones; * ENDIF. ls_order_items_in-dlvschduse = ls_item_out-DLVSCHEDUS. "Indicador de utilización; IF NOT ls_item_out-DLV_GROUP IS INITIAL. ls_order_items_in-DLV_GROUP = ls_item_out-DLV_GROUP . "Grupo de entrega (las pos.se entregan conjuntamente); ENDIF. ls_order_items_in-FIXED_QUAN = ls_item_out-FIXED_QUAN . "Cantidad fija; * ls_order_items_in-REPLACE_PT = ls_item_out-REPLACE_PT. "Pieza de recambio; * ls_order_items_in-METH_BILL = ls_item_out-METH_BILL. "Forma de facturación para órdenes RK/PPS; ls_order_items_in-DIVISION = ls_item_out-DIVISION. "sector; ls_order_items_in-CURRENCY = ls_item_out-CURRENCY. "Moneda de documento comercial; IF NOT ls_item_out-PROFIT_CTR IS INITIAL. ls_order_items_in-PROFIT_CTR = ls_item_out-PROFIT_CTR. "Centro de beneficio;PROFIT_CTR ENDIF. ls_order_items_in-ORDERID = ls_item_out-ORDERID. "Orden if ls_item_out-WBS_ELEM is NOT INITIAL. * ls_order_items_in-WBS_ELEM = ls_item_out-WBS_ELEM . "Elemento PEP CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING INPUT = ls_item_out-WBS_ELEM IMPORTING OUTPUT = ls_order_items_in-WBS_ELEM . endif. * ls_order_items_in-NO_OF_SERI = ls_item_out-NO_OF_SERI. "Cantidad de números de serie; * ls_order_items_in-SERNO_PROF = ls_item_out-SERNO_PROF. "Perfil de números de serie; APPEND ls_order_items_in TO lt_order_items_in. ENDFORM. " add_items *&---------------------------------------------------------------------* *& Form add_conditions *&---------------------------------------------------------------------* FORM add_conditions. " add conditions to item LOOP AT lt_order_conditions_out INTO ls_conditions_out WHERE itm_number = ls_item_out-itm_number and sd_doc = ls_item_out-DOC_NUMBER AND NOT cond_type IS INITIAL . CLEAR ls_order_conditions_in. MOVE-CORRESPONDING ls_conditions_out TO ls_order_conditions_in. ls_order_conditions_in-itm_number = ld_item_number. ls_order_conditions_in-cond_unit = ls_conditions_out-cond_d_unt. APPEND ls_order_conditions_in TO lt_order_conditions_in. ENDLOOP. ENDFORM. " add_conditions *----------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form FILL_HEADER *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM FILL_HEADER using i_auart i_vbeln i_version. ls_order_header_in-doc_type = i_auart. ls_order_header_in-sales_org = ls_header_out-sales_org. ls_order_header_in-distr_chan = ls_header_out-distr_chan. ls_order_header_in-division = ls_header_out-division. * ls_order_header_in-ref_doc = ls_header_out-DOC_NUMBER. * ls_order_header_in-purch_no_c = i_purno. * ls_order_header_in-refdoc_cat = ls_header_out-sd_doc_cat. ls_order_header_in-sales_off = ls_header_out-sales_off. "oficina de ventas ls_order_header_in-sales_grp = ls_header_out-sales_grp. "grupo de vendedores ls_order_header_in-WAR_DATE = ls_header_out-WAR_DATE. "Fecha límite de garantía if ls_header_out-WBS_ELEM is not initial and ls_header_out-WBS_ELEM ne '000000000'. ls_order_header_in-WBS_ELEM = ls_header_out-WBS_ELEM. "Elemento del plan de estructura de proyecto (elemento PEP) endif. ls_order_header_in-COLLECT_NO = ls_header_out-SD_COL_NUM. "Nº de licitación (SD) ls_order_header_in-DLV_BLOCK = ls_header_out-DLV_BLOCK. "Bloqueo de nota de entrega cabecera de documento ls_order_header_in-ORD_REASON = ls_header_out-ORD_REASON. "Motivo de pedido (motivo de la operación) ls_order_header_in-BILL_BLOCK = ls_header_out-BILL_BLOCK. "Bloqueo de clases de facturas para documento comercial ls_order_header_in-CURRENCY = ls_header_out-CURRENCY. "Moneda de documento comercial ls_order_header_in-COMPL_DLV = ls_header_out-COMPL_DLV. "¿Entrega completa por pedido? if ls_header_out-REQ_DATE_H is not INITIAL. ls_order_header_in-REQ_DATE_H = ls_header_out-REQ_DATE_H. "Fecha preferente de entrega ls_order_header_in-DATE_TYPE = ls_header_out-DATE_TYPE. "Período propuesto para la fecha endif. ls_order_header_in-CUST_GRP1 = ls_header_out-CUST_GRP1. "Grupo de clientes 1 ls_order_header_in-CUST_GRP2 = ls_header_out-CUST_GRP2. "Grupo de clientes 2 ls_order_header_in-CUST_GRP3 = ls_header_out-CUST_GRP3. "Grupo de clientes 3 ls_order_header_in-CUST_GRP4 = ls_header_out-CUST_GRP4. "Grupo de clientes 4 ls_order_header_in-CUST_GRP5 = ls_header_out-CUST_GRP5. "Grupo de clientes 5 ls_order_header_in-REF_DOC_L = ls_header_out-REF_DOC_L. "Número de documento de referencia ls_order_header_in-REF_DOC = i_vbeln. select SINGLE vbtyp into ls_order_header_in-refdoc_cat from vbrk where vbeln = i_vbeln. ls_order_header_in-ASS_NUMBER = ls_header_out-ASS_NUMBER. "Número de asignación ls_order_header_in-ALTTAX_CLS = ls_header_out-ALT_TAX_CL. "Diferente clasificación fiscal ls_order_header_in-TAX_CLASS2 = ls_header_out-TAX_CLASS2. "Clasificación fiscal cliente 2 ls_order_header_in-TAX_CLASS3 = ls_header_out-TAX_CLASS3. "Clasificación fiscal cliente 3 ls_order_header_in-TAX_CLASS4 = ls_header_out-TAX_CLASS4. "Clasificación fiscal cliente 4 ls_order_header_in-TAX_CLASS5 = ls_header_out-TAX_CLASS5. "Clasificación fiscal cliente 5 ls_order_header_in-TAX_CLASS6 = ls_header_out-TAX_CLASS6. "Clasificación fiscal cliente 6 ls_order_header_in-TAX_CLASS7 = ls_header_out-TAX_CLASS7. "Clasificación fiscal cliente 7 ls_order_header_in-TAX_CLASS8 = ls_header_out-TAX_CLASS8. "Clasificación fiscal cliente 8 ls_order_header_in-TAX_CLASS9 = ls_header_out-TAX_CLASS9. "Clasificación fiscal cliente 9 ls_order_header_in-EUTRI_DEAL = ls_header_out-EU_TRIANG. "Indicador: ¿operación triangular dentro de la UE? ls_order_header_in-TAXDEP_CTY = ls_header_out-TAX_DEPART. "País de salida para la determinación de impuestos ls_order_header_in-TAXDST_CTY = ls_header_out-TAX_DEST_CT. "País receptor fiscal ls_order_header_in-DLVSCHDUSE = ls_header_out-DLVSCHEDUS. "Indicador de utilización ls_order_header_in-version = i_version. ls_ORDER_HEADER_IN-PURCH_NO_C = i_vbeln. ls_ORDER_HEADER_IN-CUST_GROUP = '01'. ENDFORM. " FILL_HEADER *&---------------------------------------------------------------------* *& Form FILL_HEADER_BUSINESS *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM FILL_HEADER_BUSINESS . * fill business data IF NOT lt_order_business_out[] IS INITIAL. READ TABLE lt_order_business_out INTO ls_business_out INDEX 1. ls_order_header_in-ACCNT_ASGN = ls_business_out-ACCNT_ASGN. "Cuenta contrato ls_order_header_in-FKK_CONACCT = ls_business_out-FKK_CONACCT. "grupo de Imputación ls_order_header_in-PYMT_METH = ls_business_out-PAYMETHODE. "Vía de Pago * = ls_business_out-POSTPERIOD Periodo Contable * = ls_business_out-FISC_YEAR Ejercicio ls_order_header_in-EXRATE_FI = ls_business_out-EXCHRATEFI. "Tipo de Cambio ls_order_header_in-DUNN_KEY = ls_business_out-DUNN_KEY. "Clave de Reclamación ls_order_header_in-DUNN_BLOCK = ls_business_out-DUNN_BLOCK. "Bloqueo de reclamación ENDIF. ENDFORM. " FILL_HEADER_BUSINESS *&---------------------------------------------------------------------* *& Form FILL_PARTNERS *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM FILL_PARTNERS . data ld_pn(10) type n. loop at lt_order_partners_out INTO ls_order_partners_out where SD_DOC = ls_header_out-doc_number . ls_order_partners-partn_role = ls_order_partners_out-partn_role. ls_order_partners-partn_numb = ls_order_partners_out-customer. if ls_order_partners_out-PERSON_NO is not INITIAL. move ls_order_partners_out-PERSON_NO to ld_pn. move ld_pn to ls_order_partners-partn_numb. endif. APPEND ls_order_partners TO lt_order_partners. ENDloop. ENDFORM. " FILL_PARTNERS ********************************************************************************** include ZSSO_RVADOR01_SIM_TOP. DATA ls_bapi_view TYPE order_view. DATA lt_salesdocuments TYPE TABLE OF sales_key. DATA lt_order_headers_out TYPE TABLE OF bapisdhd. DATA lt_order_items_out TYPE TABLE OF bapisdit. DATA lt_order_schedules_out TYPE TABLE OF bapisdhedu. DATA lt_order_conditions_out TYPE TABLE OF bapisdcond. DATA lt_order_partners_out TYPE TABLE OF bapisdpart. data lt_order_business_out type table of BAPISDBUSI. DATA: lv_logic_switch TYPE bapisdls. DATA lv_salesdocument TYPE bapivbeln-vbeln. DATA lt_return TYPE TABLE OF bapiret2. DATA lt_order_items_in TYPE TABLE OF bapisditm. DATA lt_order_schedules_in TYPE TABLE OF bapischdl. DATA lt_order_partners TYPE TABLE OF bapiparnr. DATA lt_order_conditions_in TYPE TABLE OF bapicond. data ls_salesdocuments type sales_key. DATA: ls_return TYPE bapiret2. DATA: ls_header_out TYPE bapisdhd. DATA ls_order_header_in TYPE bapisdhd1. DATA: ls_item_out TYPE bapisdit. DATA: ls_order_items_in TYPE bapisditm. DATA: ls_order_schedules_in TYPE bapischdl. DATA: ls_schedules_out TYPE bapisdhedu. DATA: ls_order_partners_out TYPE bapisdpart. DATA: ls_order_partners TYPE bapiparnr. DATA ls_order_conditions_in TYPE bapicond. DATA: ls_conditions_out TYPE bapisdcond. data ls_business_out type BAPISDBUSI. data ld_item_number like ls_item_out-itm_number. data ld_sales_key type sales_key. ********************************************************************** *&---------------------------------------------------------------------* *& Include ZSSO_RVADOR01_SIM_TOP *&---------------------------------------------------------------------* *----------------------------------------------------------------------* * DATA DECLARATION *----------------------------------------------------------------------* **CONSTANTS** CONSTANTS: c_sapmv45a_xvbkd TYPE char40 VALUE '(SAPMV45A)XVBKD[]', c_sapmv45a_xvbap TYPE char40 VALUE '(SAPMV45A)XVBAP[]', c_initial TYPE posnr VALUE '000000', c_end_date TYPE auszdat VALUE '99991231', c_formname TYPE tdsfname VALUE 'ZSSO_RVADOR01_SIM', c_waerk TYPE waerk VALUE 'CLP', c_skfbt TYPE acfbt VALUE '0.00', c_valtg TYPE valtg VALUE '00', c_valdt TYPE valdt VALUE space, c_true TYPE char1 VALUE 'X', c_as01 TYPE dzterm VALUE 'AS01', c_ts01 TYPE dzterm VALUE 'TS01', c_id_z001 TYPE tdid VALUE 'Z001', c_es TYPE spras VALUE 'S', c_konp TYPE tdobject VALUE 'KONP', c_01 TYPE char2 VALUE '01', c_zint TYPE kscha VALUE 'ZINT'. constants: c_sapmv45a_xKOMV TYPE char40 VALUE '(SAPMV45A)XKOMV[]'. **TYPES** TYPES: ty_sim TYPE zsso_sim_st, ty_sim_hdr TYPE zsso_sim_hdr_st, ty_sim_pos TYPE zsso_sim_pos_st, ty_sim_ftr TYPE zsso_sim_ftr_st, ty_vbdka TYPE vbdka, ty_xvbkd TYPE vbkdvb, ty_xvbap TYPE vbapvb, ty_te418 TYPE te418. TYPES: BEGIN OF ty_t052s, ratnr TYPE ratnr, ratpz TYPE ratpz, ratzt TYPE ratzt, END OF ty_t052s. **TYPE TABLE** TYPES: ty_t_sim_pos TYPE STANDARD TABLE OF ty_sim_pos, ty_t_xvbkd TYPE STANDARD TABLE OF ty_xvbkd, ty_t_xvbap TYPE STANDARD TABLE OF ty_xvbap, ty_t_t052s TYPE STANDARD TABLE OF ty_t052s, ty_t_tline TYPE STANDARD TABLE OF tline. types: ty_t_xkomv TYPE STANDARD TABLE OF KOMV. **DATA** DATA: gt_xvbap TYPE ty_t_xvbap, gt_t052s TYPE ty_t_t052s, ga_sim TYPE ty_sim, ga_xvbkd TYPE ty_xvbkd. data gt_xkomv type ty_t_xkomv. **********************************************************************