Quantcast
Channel: SCN: Message List - Comunidad SAP en Español (Spanish Language Community)
Viewing all 2362 articles
Browse latest View live

error Enhancement Package 3

$
0
0


Hola:

 

Estoy intentando instalar el sap "ABAP_7_3_SP04_64_bit-Trial_3_9_2_GB" Cuando llego a la segunda opción de las instalaciones aparece el siguiente error

 

An error occurred while processing option SAP Netweaver 7.0 including enhancement package 3 > sap application server ABAP > MAXDB > CentralSystem (last error reported by the stap: Could not read the profile path for users S-1-5-21-3406387429-4240673839-835476968-1008 : El sistema no puede encontrar el archivo especificado ... ) .

 

¿me podéis ayudar?

 

Mi sistema operativo es windows 7 y no existe servicepack 3.


Re: Funcionalidades de los campos de las vista de MRP.

Re: Ayuda SAP IDES

$
0
0

Hola Osvaldo.

Un chico de BASIS me lo paso, pero ya casi termina

Addon de Localizacion Chile

$
0
0

Estimados quizas me puedan sacar de una duda, ayer tuve una reunion con un partner de sap business one y me comentaron que habia una localizacion gratuita para chile

 

saben algo? donde lo puedo descargar?

 

Espero noticias

 

 

Jesus

Re: Modelo 347 y Criterio de Caja

Re: Norma de liquidación duplicada en orden de producción

$
0
0

Hola Osvaldo Gracias por tu respuesta, claro, mira estas son algunas capturas de unas ordenes que presentaron este problema en el cierre de mes de Diciembre.

 

son 3 capturas, la primera es el error que se ve al hacer la liquidación, la segunda es una de las ordenes con la norma duplicada, y la tercera es la pantalla donde ya se ve la norma duplicada.

 

espero sean de utilidad para poder dar un mejor diagnostico, gracias

 

Captura1.JPG

Captura2.JPG

Captura3.JPG

Add Column GJAHR to report

$
0
0

Add Column GJAHR to report Hello friends, I am new to the subject, appreciate their valuable help, I would add the following report GJAHR field, but really what I've done is not me, you appreciate a help of friends. REPORT Z_TEMP_01 NO STANDARD PAGE HEADING                   MESSAGE-ID zc                                           LINE-SIZE 132. ************************************************************************ ***  Definición de tablas transparentes                            *** ************************************************************************ TABLES: eban,         t001. TYPES: BEGIN OF eord_type,           matnr TYPE eord-matnr,           werks TYPE eord-werks,           zeord TYPE eord-zeord,           lifnr TYPE eord-lifnr,           flifn TYPE eord-flifn,           febel TYPE eord-febel,           fresw TYPE eord-fresw,         END OF eord_type. ************************************************************************ ***  Definición de tablas internas                                *** ************************************************************************ DATA: ***  Tabla para selecionar datos de Análisis Stock/Necesidades       BEGIN OF ti_eban OCCURS 0,         matnr  LIKE eban-matnr,    "         werks  LIKE eban-werks,    "         reswk  LIKE eban-reswk,    "         menge  LIKE eban-menge,    "         meins  LIKE eban-meins,    "         lfdat  LIKE eban-lfdat,    "         webaz  LIKE eban-webaz,    "       END OF ti_eban, ***  Tabla p/ selecionar datos Req c/ pedidos cancelados.       ti_ebanko LIKE ti_eban OCCURS 0 WITH HEADER LINE, ***  Tabla para selecionar dados de Análisis Stock/Necesidades       BEGIN OF ti_ekpo OCCURS 0,         matnr  LIKE ekpo-matnr,    "         werks  LIKE ekpo-werks,    "         menge  LIKE ekpo-menge,    "         meins  LIKE ekpo-meins,    "         wemng  LIKE eket-wemng,    "         glmng  LIKE eket-glmng,    "         eindt  LIKE eket-eindt,    "         webaz  LIKE ekpo-webaz,    "       END OF ti_ekpo, ***  Tabla c/ datos da EBAN e EKPO.       BEGIN OF ti_dados OCCURS 0,         matnr  LIKE ekpo-matnr,    "         werks  LIKE ekpo-werks,    "         menge  LIKE ekpo-menge,    "         meins  LIKE ekpo-meins,    "         lfdat  LIKE eket-eindt,    "       END OF ti_dados, ***  Tabla para Selecionar Descripción de los Materiales       BEGIN OF ti_makt OCCURS 0,         matnr  LIKE makt-matnr,    " Nº de material         maktx  LIKE makt-maktx,    " Texto breve de material       END OF ti_makt, ***  Tabla para Selecionar UM Basicas       BEGIN OF ti_mara OCCURS 0,         matnr  LIKE mara-matnr,    " Nº de material         meins  LIKE mara-meins,    " Unidad de medida básica         bstme  LIKE mara-bstme,    " Unidad de pedido       END OF ti_mara, ***  Tabla para Selecionar o Proveedor       BEGIN OF ti_mkol OCCURS 0,         matnr  LIKE mkol-matnr,    " Nº de material         werks  LIKE mkol-werks,    " Centro         slabs  LIKE mkol-slabs,    " Stock en consignación para uso libre         lifnr  LIKE mkol-lifnr,    " Nº cuenta de Proveedor         charg  LIKE mkol-charg,    " N° de Lote         lgort  LIKE mkol-lgort,    " Deposito         sobkz  LIKE mkol-sobkz,    " Codigo de Stock especial       END OF ti_mkol, ***  Tabla para Selecionar el Proveedor Agrupado por Material y Centro       BEGIN OF ti_mkol2 OCCURS 0 ,         matnr  LIKE mkol-matnr,    " Nº de material         werks  LIKE mkol-werks,    " Centro         slabs  LIKE mkol-slabs,    " Stock en consignación para uso libre         lifnr  LIKE mkol-lifnr,    " Nº cuenta de Proveedor       END OF ti_mkol2, ***  Tabla para Selecionar el Nombre de Proveedor       BEGIN OF ti_lfa1 OCCURS 0,         lifnr  LIKE lfa1-lifnr,    " Nº cuenta de Proveedor         name1  LIKE lfa1-name1,    " Nombre / Razon Social       END OF ti_lfa1, ***  Tabla de Salida Total (en Consignados)       BEGIN OF ti_jfreq OCCURS 0,         werks(2) TYPE c,          " Pais         matnr LIKE mara-matnr,    " Nº de material         maktx LIKE MAKT-maktx,    "AFIGUEROA         meins like ekpo-meins,         mes1  LIKE eban-menge,    " Cant.entrada futura total MES1         mes2  LIKE eban-menge,    " Cant.entrada futura total MES2         mes3  LIKE eban-menge,    " Cant.entrada futura total MES3         mes4  LIKE eban-menge,    " Cant.entrada futura total MES4         mes5  LIKE eban-menge,    " Cant.entrada futura total MES5         mes6  LIKE eban-menge,    " Cant.entrada futura total MES6         mes7  LIKE eban-menge,    " Cant.entrada futura total MES7         mes8  LIKE eban-menge,    " Cant.entrada futura total MES8         mes9  LIKE eban-menge,    " Cant.entrada futura total MES9         mes10 LIKE eban-menge,    " Cant.entrada futura total MES10         mes11 LIKE eban-menge,    " Cant.entrada futura total MES11         mes12 LIKE eban-menge,    " Cant.entrada futura total MES12         mes13 LIKE eban-menge,    " Cant.entrada futura total MES13         bukrs LIKE t001-bukrs,    " Empresa         lifnr TYPE eord-lifnr,    " Proveedor       END OF ti_jfreq,       BEGIN OF ti_jconskmr OCCURS 0,         matnr LIKE mara-matnr,    " Nº de material         maktx LIKE makt-maktx,    " Texto breve de Material         meins LIKE mara-meins,    " Unidad de Medida básica         bstme LIKE mara-bstme,    " Unidad de Pedido         lifnr LIKE lfa1-lifnr,    " Nº cuenta de Proveedor         name1 LIKE lfa1-name1,    " Nombre         slabs LIKE mkol-slabs,    " Stock en consig utilización libre         mes1  LIKE eban-menge,    " Cant.entrada futura total MES1         mes2  LIKE eban-menge,    " Cant.entrada futura total MES2         mes3  LIKE eban-menge,    " Cant.entrada futura total MES3         mes4  LIKE eban-menge,    " Cant.entrada futura total MES4         mes5  LIKE eban-menge,    " Cant.entrada futura total MES5         mes6  LIKE eban-menge,    " Cant.entrada futura total MES6         mes7  LIKE eban-menge,    " Cant.entrada futura total MES7         mes8  LIKE eban-menge,    " Cant.entrada futura total MES8         mes9  LIKE eban-menge,    " Cant.entrada futura total MES9         mes10 LIKE eban-menge,    " Cant.entrada futura total MES10         mes11 LIKE eban-menge,    " Cant.entrada futura total MES11         mes12 LIKE eban-menge,    " Cant.entrada futura total MES12         mes13 LIKE eban-menge,    " Cant.entrada futura total MES13         soma  LIKE eban-menge,    " Cant.entrada futura total SUMA         werks(2) TYPE c,          " Pais         bukrs LIKE t001-bukrs,    " Empresa         lifn2 TYPE eord-lifnr,    " Proveedor       END OF ti_jconskmr, ***  Tabla de Salida Final Total (En Consignados)       BEGIN OF ti_saida1 OCCURS 0,         campo(500) TYPE c,        " String de Salida       END OF ti_saida1, ***  Tabla de Salida Final Consignados       ti_saida2 LIKE ti_saida1 OCCURS 0 WITH HEADER LINE,       eord_itab TYPE TABLE OF eord_type,       eord_str  TYPE eord_type. ************************************************************************ ***  Definición de constantes                                      *** ************************************************************************ CONSTANTS: c_b        TYPE c VALUE 'B',             c_f        TYPE c VALUE 'F',             c_k        TYPE c VALUE 'K',             c_l        TYPE c VALUE 'L',             c_n        TYPE c VALUE 'N',             c_x        TYPE c VALUE 'X',             c_0        TYPE c VALUE '0'. ************************************************************************ ***  Definición de Rangos                                          *** ************************************************************************ RANGES: r_ano  FOR eban-lfdat,         r_ano2 FOR eban-lfdat. ************************************************************************ ***  Definición dos Parámetros                                      *** ************************************************************************ SELECTION-SCREEN BEGIN OF BLOCK bl0 WITH FRAME TITLE text-007. SELECT-OPTIONS: s_werks FOR eban-werks OBLIGATORY,                 s_bukrs FOR t001-bukrs OBLIGATORY.  "Empresa SELECTION-SCREEN END OF BLOCK bl0. SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001. PARAMETER: p_ano  LIKE sy-datum+0(4) DEFAULT sy-datum+0(4) OBLIGATORY,             p_mes  LIKE sy-datum+4(2) DEFAULT sy-datum+4(2) OBLIGATORY. SELECTION-SCREEN END OF BLOCK bl1. SELECTION-SCREEN BEGIN OF BLOCK bl2 WITH FRAME TITLE text-002. PARAMETER: p_local  TYPE c RADIOBUTTON GROUP g1,             p_serv  TYPE c RADIOBUTTON GROUP g1. SELECTION-SCREEN  END  OF BLOCK bl2. SELECTION-SCREEN BEGIN OF BLOCK bl3 WITH FRAME TITLE text-003. PARAMETER: *** Path para Todos los Archivos     p_file1  LIKE rlgrap-filename DEFAULT 'c:\TMP\MM\MRP_V100.txt' OBLIGATORY, *** Path  para Consignados     p_file2  LIKE rlgrap-filename DEFAULT 'c:\TMP\MM\CONSUMOS_V100.txt' OBLIGATORY. SELECTION-SCREEN  END  OF BLOCK bl3. ************************************************************************ ***  EVENTO At Selection-Screen                                    *** ************************************************************************ AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1. * Busca Ruta de Archivo   PERFORM busca_arquivo USING p_file1. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file2. * Busca Ruta de Archivo   PERFORM busca_arquivo USING p_file2. ************************************************************************ ***  EVENTO Start-of-selection                                    *** ************************************************************************ START-OF-SELECTION. * Verifica Autorizacion   PERFORM z_authority_check. * Seleciona Datos   PERFORM select_data. * Prepara datos TI Salida   PERFORM prepara_dados. * Genera Tabla de Salida   PERFORM gera_ti_saida. * Genera Archivos Salida   PERFORM gera_arq_saida. ******************* Fin de Evento Start-of-selection ****************** *&---------------------------------------------------------------------* *&      Form  busca_archivo *&---------------------------------------------------------------------* *      Busca Ruta de Archivo *----------------------------------------------------------------------* FORM busca_arquivo USING file TYPE any.   CALL FUNCTION 'F4_FILENAME'     IMPORTING       file_name = file. ENDFORM.                    " busca_archivo *&---------------------------------------------------------------------* *&      Form  select_data *&---------------------------------------------------------------------* *      Seleciona Datos. *----------------------------------------------------------------------* FORM select_data. * Toma el periodo de año entero.   PERFORM trata_data. * Seleciona datos de Requisiciones Pendientes para el Periodo   PERFORM select_eban. * Seleciona datos de Pedidos no Completados para el Periodo   PERFORM select_ekpo. * Seleciona datos de Requisiciones con Pedidos, sin pedidos cancelados   PERFORM select_eban_ekpo. * Trata datos EBAN y EKPO y agrupa por mes   PERFORM eban_ekpo.   PERFORM z_seleciona_eord. * Seleciona Descripciones de material   SELECT matnr maktx     FROM makt     INTO TABLE ti_makt     FOR ALL ENTRIES IN ti_dados     WHERE matnr EQ ti_dados-matnr.   IF sy-subrc EQ 0.     SORT ti_makt BY matnr.   ENDIF. * Selecciona UM Basica   SELECT matnr meins bstme     FROM mara     INTO TABLE ti_mara     FOR ALL ENTRIES IN ti_dados     WHERE matnr EQ ti_dados-matnr.   IF sy-subrc EQ 0.     SORT ti_mara BY matnr.   ENDIF. * Selecciona proveedor   SELECT matnr werks slabs lifnr charg lgort sobkz     FROM mkol     INTO TABLE ti_mkol     FOR ALL ENTRIES IN ti_dados     WHERE matnr EQ ti_dados-matnr AND           werks EQ ti_dados-werks AND           sobkz EQ c_k.   IF sy-subrc EQ 0.     SORT ti_mkol BY matnr werks lifnr. *  Selecciona Nombre Proveedor     SELECT lifnr name1       FROM lfa1       INTO TABLE ti_lfa1       FOR ALL ENTRIES IN ti_mkol       WHERE lifnr EQ ti_mkol-lifnr.     IF sy-subrc EQ 0.       SORT ti_lfa1 BY lifnr.     ENDIF.     LOOP AT ti_mkol.       CLEAR ti_mkol2.       ti_mkol2 = ti_mkol.       COLLECT ti_mkol2.     ENDLOOP.     SORT ti_mkol2 BY matnr werks.   ENDIF. ENDFORM.                    " select_data *&---------------------------------------------------------------------* *&      Form  trata_data *&---------------------------------------------------------------------* *      Crea el periodo de Año Completo *----------------------------------------------------------------------* FORM trata_data.   DATA: vl_mes(2) TYPE n,         vl_ano(4) TYPE n.   CLEAR: vl_mes, vl_ano, r_ano, r_ano2.   REFRESH: r_ano, r_ano2.   vl_mes = p_mes.   vl_ano = p_ano. * Mes Actual   r_ano-sign = 'I'.   r_ano-option = 'BT'.   CONCATENATE vl_ano vl_mes '01'           INTO r_ano-low.   CALL FUNCTION 'SG_PS_ADD_MONTH_TO_DATE'     EXPORTING       months  = 12       olddate = r_ano-low     IMPORTING       newdate = r_ano-high.   CALL FUNCTION 'SG_PS_GET_LAST_DAY_OF_MONTH'     EXPORTING       day_in            = r_ano-high     IMPORTING       last_day_of_month = r_ano-high     EXCEPTIONS       day_in_not_valid  = 1       OTHERS            = 2.   IF sy-subrc NE 0.     r_ano-high = r_ano-high + 31.   ENDIF.   APPEND r_ano. * Mes Actual (Considerando un mes antras)   r_ano2-sign = 'I'.   r_ano2-option = 'BT'.   CALL FUNCTION 'BKK_ADD_MONTH_TO_DATE'     EXPORTING       months  = '-1'                    " REVISAR N -2 *********       olddate = r_ano-low     IMPORTING       newdate = r_ano2-low.   r_ano2-high = r_ano-high.   APPEND r_ano2. ENDFORM.                    " trata_data *&---------------------------------------------------------------------* *&      Form  prepara_datos *&---------------------------------------------------------------------* *      Prepara Datos Salida 1 y 2 *----------------------------------------------------------------------* FORM prepara_dados.   DATA: vl_mes(2) TYPE n.   SORT ti_mkol BY matnr werks.   SORT ti_makt BY matnr.   SORT ti_mara BY matnr.   SORT ti_lfa1 BY lifnr.   LOOP AT ti_dados.     CLEAR: ti_jconskmr, ti_jfreq, vl_mes, ti_mkol, ti_mkol2. *  Calcula la cantidad de acuerdo con la UM Basica (Mara-Meins).     PERFORM qtde_basica. *  Calcula mes de acuerdo con mes inicial.     PERFORM calcula_mes USING vl_mes. *  Verifica Consignados     READ TABLE ti_mkol WITH KEY matnr = ti_dados-matnr                                 werks = ti_dados-werks BINARY SEARCH.       IF sy-subrc EQ 0.       ti_jconskmr-matnr = ti_dados-matnr.       SELECT SINGLE bukrs FROM t001k       INTO ti_jconskmr-bukrs       WHERE bwkey = ti_dados-werks.       ti_jconskmr-werks = ti_dados-werks+0(2).       ti_jconskmr-lifnr = ti_mkol-lifnr. *    Busca código de Proveedor marcado como fijo (fuente de *    Suministro Fijo)       CLEAR eord_str.       READ TABLE eord_itab INTO eord_str WITH KEY                                           matnr = ti_dados-matnr                                           werks = ti_dados-werks                                           BINARY SEARCH.       IF sy-subrc IS INITIAL AND ( eord_str-febel eq c_x or       eord_str-flifn eq c_x or eord_str-fresw eq c_x ).         ti_jconskmr-lifn2 = eord_str-lifnr.       ENDIF. *    Carga la Cantidad consignada solo 1X para no duplicar valor.       READ TABLE ti_mkol2 WITH KEY matnr = ti_dados-matnr                                     werks = ti_dados-werks BINARY SEARCH.       IF sy-subrc EQ 0.         ti_jconskmr-slabs = ti_mkol2-slabs.         DELETE ti_mkol2 INDEX sy-tabix.       ENDIF. *    Busca Descripción de Material       READ TABLE ti_makt WITH KEY matnr = ti_dados-matnr BINARY SEARCH.       IF sy-subrc EQ 0.         ti_jconskmr-maktx = ti_makt-maktx.       ENDIF. *    Busca UM Basica y UM Pedido       READ TABLE ti_mara WITH KEY matnr = ti_dados-matnr BINARY SEARCH.       IF sy-subrc EQ 0.         ti_jconskmr-meins = ti_mara-meins.         ti_jconskmr-bstme = ti_mara-bstme.       ENDIF. *    Busca Descripción Proveedor       READ TABLE ti_lfa1 WITH KEY lifnr = ti_mkol-lifnr BINARY SEARCH.       IF sy-subrc EQ 0.         ti_jconskmr-name1 = ti_lfa1-name1.       ENDIF. *    Busca Cantidades Conforme al Mes de Referencia       IF vl_mes EQ '01'.         ti_jconskmr-mes1  = ti_dados-menge.       ELSEIF vl_mes EQ '02'.         ti_jconskmr-mes2  = ti_dados-menge.       ELSEIF vl_mes EQ '03'.         ti_jconskmr-mes3  = ti_dados-menge.       ELSEIF vl_mes EQ '04'.         ti_jconskmr-mes4  = ti_dados-menge.       ELSEIF vl_mes EQ '05'.         ti_jconskmr-mes5  = ti_dados-menge.       ELSEIF vl_mes EQ '06'.         ti_jconskmr-mes6  = ti_dados-menge.       ELSEIF vl_mes EQ '07'.         ti_jconskmr-mes7  = ti_dados-menge.       ELSEIF vl_mes EQ '08'.         ti_jconskmr-mes8  = ti_dados-menge.       ELSEIF vl_mes EQ '09'.         ti_jconskmr-mes9  = ti_dados-menge.       ELSEIF vl_mes EQ '10'.         ti_jconskmr-mes10 = ti_dados-menge.       ELSEIF vl_mes EQ '11'.         ti_jconskmr-mes11 = ti_dados-menge.       ELSEIF vl_mes EQ '12'.         ti_jconskmr-mes12 = ti_dados-menge.       ELSEIF vl_mes EQ '13'.         ti_jconskmr-mes13 = ti_dados-menge.       ENDIF.       ti_jconskmr-soma = ti_dados-menge.       COLLECT ti_jconskmr.     ELSE.       IF ti_dados-lfdat <> '00000000'.         SELECT SINGLE bukrs FROM t001k         INTO ti_jfreq-bukrs         WHERE bwkey = ti_dados-werks. "| AFIGUEROA INI       READ TABLE ti_makt WITH KEY matnr = ti_dados-matnr BINARY SEARCH.       IF sy-subrc EQ 0.         ti_jfreq-maktx = ti_makt-maktx.         ti_jfreq-meins = ti_dados-meins.       ENDIF. " AFIGUEROA INI         ti_jfreq-werks = ti_dados-werks+0(2).         ti_jfreq-matnr = ti_dados-matnr. *      Busca código de Proveedor marcado como fijo (fuente de *      Suministro fija)         CLEAR eord_str.         READ TABLE eord_itab INTO eord_str WITH KEY                                             matnr = ti_dados-matnr                                             werks = ti_dados-werks                                             BINARY SEARCH.         IF sy-subrc IS INITIAL AND ( eord_str-febel eq c_x         or eord_str-flifn eq c_x or eord_str-fresw eq c_x ).           ti_jfreq-lifnr = eord_str-lifnr.         ENDIF. *    Busca Cantidades Conforme el Mes de Referencia         IF vl_mes EQ '01'.           ti_jfreq-mes1  = ti_dados-menge.         ELSEIF vl_mes EQ '02'.           ti_jfreq-mes2  = ti_dados-menge.         ELSEIF vl_mes EQ '03'.           ti_jfreq-mes3  = ti_dados-menge.         ELSEIF vl_mes EQ '04'.           ti_jfreq-mes4  = ti_dados-menge.         ELSEIF vl_mes EQ '05'.           ti_jfreq-mes5  = ti_dados-menge.         ELSEIF vl_mes EQ '06'.           ti_jfreq-mes6  = ti_dados-menge.         ELSEIF vl_mes EQ '07'.           ti_jfreq-mes7  = ti_dados-menge.         ELSEIF vl_mes EQ '08'.           ti_jfreq-mes8 = ti_dados-menge.         ELSEIF vl_mes EQ '09'.           ti_jfreq-mes9  = ti_dados-menge.         ELSEIF vl_mes EQ '10'.           ti_jfreq-mes10 = ti_dados-menge.         ELSEIF vl_mes EQ '11'.           ti_jfreq-mes11 = ti_dados-menge.         ELSEIF vl_mes EQ '12'.           ti_jfreq-mes12 = ti_dados-menge.         ELSEIF vl_mes EQ '13'.           ti_jfreq-mes13 = ti_dados-menge.         ENDIF.         COLLECT ti_jfreq.       ENDIF.     ENDIF.   ENDLOOP. ENDFORM.                    " prepara_datos *&---------------------------------------------------------------------* *&      Form  genera_ti_salida *&---------------------------------------------------------------------* *      Genera Tablas de Salidas. *----------------------------------------------------------------------* FORM gera_ti_saida.   DATA: vl_mes1(16)  TYPE c,         vl_mes2(16)  TYPE c,         vl_mes3(16)  TYPE c,         vl_mes4(16)  TYPE c,         vl_mes5(16)  TYPE c,         vl_mes6(16)  TYPE c,         vl_mes7(16)  TYPE c,         vl_mes8(16)  TYPE c,         vl_mes9(16)  TYPE c,         vl_mes10(16) TYPE c,         vl_mes11(16) TYPE c,         vl_mes12(16) TYPE c,         vl_mes13(16) TYPE c,         vl_slabs(16) TYPE c,         vl_soma(16)  TYPE c. * Archivo MRP   LOOP AT ti_jfreq.     CLEAR: vl_mes1, vl_mes2, vl_mes3, vl_mes4,  vl_mes5,  vl_mes6,             vl_mes7, vl_mes8, vl_mes9, vl_mes10, vl_mes11, vl_mes12,             vl_mes13, ti_saida1. * Código Antiguo *    vl_mes1  = ti_jfreq-mes1. *    vl_mes2  = ti_jfreq-mes2. *    vl_mes3  = ti_jfreq-mes3. *    vl_mes4  = ti_jfreq-mes4. *    vl_mes5  = ti_jfreq-mes5. *    vl_mes6  = ti_jfreq-mes6. *    vl_mes7  = ti_jfreq-mes7. *    vl_mes8  = ti_jfreq-mes8. *    vl_mes9  = ti_jfreq-mes9. *    vl_mes10 = ti_jfreq-mes10. *    vl_mes11 = ti_jfreq-mes11. *    vl_mes12 = ti_jfreq-mes12. *    vl_mes13 = ti_jfreq-mes13. * Código Novo.     WRITE ti_jfreq-mes1  TO vl_mes1.     WRITE ti_jfreq-mes2  TO vl_mes2.     WRITE ti_jfreq-mes3  TO vl_mes3.     WRITE ti_jfreq-mes4  TO vl_mes4.     WRITE ti_jfreq-mes5  TO vl_mes5.     WRITE ti_jfreq-mes6  TO vl_mes6.     WRITE ti_jfreq-mes7  TO vl_mes7.     WRITE ti_jfreq-mes8  TO vl_mes8.     WRITE ti_jfreq-mes9  TO vl_mes9.     WRITE ti_jfreq-mes10 TO vl_mes10.     WRITE ti_jfreq-mes11 TO vl_mes11.     WRITE ti_jfreq-mes12 TO vl_mes12.     WRITE ti_jfreq-mes13 TO vl_mes13.     SHIFT: ti_jfreq-matnr LEFT DELETING LEADING '0',             ti_jfreq-lifnr LEFT DELETING LEADING c_0, *             vl_mes1        LEFT DELETING LEADING space,             vl_mes2        LEFT DELETING LEADING space,             vl_mes3        LEFT DELETING LEADING space,             vl_mes4        LEFT DELETING LEADING space,             vl_mes5        LEFT DELETING LEADING space,             vl_mes6        LEFT DELETING LEADING space,             vl_mes7        LEFT DELETING LEADING space,             vl_mes8        LEFT DELETING LEADING space,             vl_mes9        LEFT DELETING LEADING space,             vl_mes10      LEFT DELETING LEADING space,             vl_mes11      LEFT DELETING LEADING space,             vl_mes12      LEFT DELETING LEADING space,             vl_mes13      LEFT DELETING LEADING space. *  Usa Campo     PERFORM zera_campo: USING vl_mes1,  USING vl_mes2,  USING vl_mes3,                         USING vl_mes4,  USING vl_mes5,  USING vl_mes6,                         USING vl_mes7,  USING vl_mes8,  USING vl_mes9,                         USING vl_mes10,  USING vl_mes11, USING vl_mes12,                         USING vl_mes13.     IF ti_jfreq-matnr <> ''.       CONCATENATE  ti_jfreq-matnr ti_jfreq-maktx ti_jfreq-meins                     ti_jfreq-lifnr                         vl_mes1    vl_mes2    vl_mes3    vl_mes4                         vl_mes5    vl_mes6    vl_mes7    vl_mes8                         vl_mes9    vl_mes10    vl_mes11    vl_mes12                         vl_mes13    ti_jfreq-werks                         ti_jfreq-bukrs                 INTO ti_saida1-campo                 SEPARATED BY  ';'.                 REPLACE all OCCURRENCES of '.' in ti_saida1 WITH ' '.                 CONDENSE ti_saida1 NO-GAPS.                 REPLACE all OCCURRENCES OF ',' in ti_saida1 WITH '.'.                                       APPEND ti_saida1.     ENDIF. * Archivo CONSUMO   LOOP AT ti_jconskmr.     CLEAR: vl_mes1, vl_mes2, vl_mes3, vl_mes4,  vl_mes5,  vl_mes6,             vl_mes7, vl_mes8, vl_mes9, vl_mes10, vl_mes11, vl_mes12,             vl_mes13, ti_saida2. * Código Antiguo *    vl_mes1  = ti_jconskmr-mes1. *    vl_mes2  = ti_jconskmr-mes2. *    vl_mes3  = ti_jconskmr-mes3. *    vl_mes4  = ti_jconskmr-mes4. *    vl_mes5  = ti_jconskmr-mes5. *    vl_mes6  = ti_jconskmr-mes6. *    vl_mes7  = ti_jconskmr-mes7. *    vl_mes8  = ti_jconskmr-mes8. *    vl_mes9  = ti_jconskmr-mes9. *    vl_mes10 = ti_jconskmr-mes10. *    vl_mes11 = ti_jconskmr-mes11. *    vl_mes12 = ti_jconskmr-mes12. *    vl_mes13 = ti_jconskmr-mes13. *    vl_slabs = ti_jconskmr-slabs. * Código Novo.     WRITE ti_jconskmr-mes1  TO vl_mes1.     WRITE ti_jconskmr-mes2  TO vl_mes2.     WRITE ti_jconskmr-mes3  TO vl_mes3.     WRITE ti_jconskmr-mes4  TO vl_mes4.     WRITE ti_jconskmr-mes5  TO vl_mes5.     WRITE ti_jconskmr-mes6  TO vl_mes6.     WRITE ti_jconskmr-mes7  TO vl_mes7.     WRITE ti_jconskmr-mes8  TO vl_mes8.     WRITE ti_jconskmr-mes9  TO vl_mes9.     WRITE ti_jconskmr-mes10 TO vl_mes10.     WRITE ti_jconskmr-mes11 TO vl_mes11.     WRITE ti_jconskmr-mes12 TO vl_mes12.     WRITE ti_jconskmr-mes13 TO vl_mes13.     WRITE ti_jconskmr-slabs TO vl_slabs.     vl_soma = ti_jconskmr-mes1  + ti_jconskmr-mes2  + ti_jconskmr-mes3 +               ti_jconskmr-mes4  + ti_jconskmr-mes5  + ti_jconskmr-mes6 +               ti_jconskmr-mes7  + ti_jconskmr-mes8  + ti_jconskmr-mes9 +               ti_jconskmr-mes10 + ti_jconskmr-mes11 + ti_jconskmr-mes12               +               ti_jconskmr-mes13.     SHIFT: ti_jconskmr-matnr  LEFT DELETING LEADING '0',             ti_jconskmr-lifnr  LEFT DELETING LEADING '0',             ti_jconskmr-lifn2  LEFT DELETING LEADING c_0,             vl_mes1            LEFT DELETING LEADING space,             vl_mes2            LEFT DELETING LEADING space,             vl_mes3            LEFT DELETING LEADING space,             vl_mes4            LEFT DELETING LEADING space,             vl_mes5            LEFT DELETING LEADING space,             vl_mes6            LEFT DELETING LEADING space,             vl_mes7            LEFT DELETING LEADING space,             vl_mes8            LEFT DELETING LEADING space,             vl_mes9            LEFT DELETING LEADING space,             vl_mes10          LEFT DELETING LEADING space,             vl_mes11          LEFT DELETING LEADING space,             vl_mes12          LEFT DELETING LEADING space,             vl_mes13          LEFT DELETING LEADING space,             vl_soma            LEFT DELETING LEADING space,             vl_slabs          LEFT DELETING LEADING space. *  Usa Campo     PERFORM zera_campo: USING vl_mes1,  USING vl_mes2,  USING vl_mes3,                         USING vl_mes4,  USING vl_mes5,  USING vl_mes6,                         USING vl_mes7,  USING vl_mes8,  USING vl_mes9,                         USING vl_mes10, USING vl_mes11, USING vl_mes12,                         USING vl_mes13, USING vl_soma,  USING vl_slabs.     CONCATENATE:           ti_jconskmr-matnr  ti_jconskmr-maktx(30)  ti_jconskmr-meins *      ti_jconskmr-bstme  ti_jconskmr-lifnr    ti_jconskmr-name1(30)         ti_jconskmr-bstme  ti_jconskmr-lifnr         ti_jconskmr-lifn2  ti_jconskmr-name1(30)             vl_slabs    vl_mes1    vl_mes2    vl_mes3    vl_mes4             vl_mes5    vl_mes6    vl_mes7    vl_mes8    vl_mes9             vl_mes10    vl_mes11  vl_mes12  vl_mes13  vl_soma             ti_jconskmr-werks             ti_jconskmr-bukrs         INTO ti_saida2-campo         SEPARATED BY ';'.     APPEND ti_saida2. ENDLOOP. ENDLOOP. ENDFORM.                    " genera_ti_salida *&---------------------------------------------------------------------* *&      Form  Usa_campo *&---------------------------------------------------------------------* FORM zera_campo USING vl_mes TYPE any.   IF vl_mes = '0.000'.     vl_mes = 0.   ENDIF.   SHIFT vl_mes LEFT DELETING LEADING space. ENDFORM.                    " Usa_campo *&---------------------------------------------------------------------* *&      Form  genera_arc_salida *&---------------------------------------------------------------------* *      Genera Archivos Salidas *----------------------------------------------------------------------* FORM gera_arq_saida.   IF NOT p_local IS INITIAL. *  Genera Archivos Local     PERFORM gera_arq_local.   ELSE. *  Genera Archivos Servidor     PERFORM gera_arq_server.   ENDIF. ENDFORM.                    " genera_arc_salida *&---------------------------------------------------------------------* *&      Form  genera_arc_local *&---------------------------------------------------------------------* *      Genera Archivos Local *----------------------------------------------------------------------* FORM gera_arq_local. * Download Local Archivo 1   PERFORM download_local TABLES ti_saida1                           USING p_file1. * Download Local Archivo 2   PERFORM download_local TABLES ti_saida2                           USING p_file2. ENDFORM.                    " genera_arc_local *&---------------------------------------------------------------------* *&      Form  download_local *&---------------------------------------------------------------------* *      Exporta TI para Archivos Locales *----------------------------------------------------------------------* FORM download_local TABLES ti_saida STRUCTURE ti_saida1                     USING  file TYPE any.   DATA: vl_file TYPE string.   vl_file = file. *{  REPLACE        ZLAK900520                                        1 *\  CALL FUNCTION 'GUI_DOWNLOAD' *\    EXPORTING *\      filename                = vl_file *\    TABLES *\      data_tab                = ti_saida *\    EXCEPTIONS *\      file_write_error        = 1 *\      no_batch                = 2 *\      gui_refuse_filetransfer = 3 *\      invalid_type            = 4 *\      no_authority            = 5 *\      unknown_error          = 6 *\      header_not_allowed      = 7 *\      separator_not_allowed  = 8 *\      filesize_not_allowed    = 9 *\      header_too_long        = 10 *\      dp_error_create        = 11 *\      dp_error_send          = 12 *\      dp_error_write          = 13 *\      unknown_dp_error        = 14 *\      access_denied          = 15 *\      dp_out_of_memory        = 16 *\      disk_full              = 17 *\      dp_timeout              = 18 *\      file_not_found          = 19 *\      dataprovider_exception  = 20 *\      control_flush_error    = 21 *\      OTHERS                  = 22.   CALL METHOD cl_gui_frontend_services=>gui_download     EXPORTING       filename                = vl_file *      FILETYPE                = *      DAT_MODE                =     CHANGING       data_tab                = ti_saida[]     EXCEPTIONS       file_write_error        = 1       no_batch                = 2       gui_refuse_filetransfer = 3       invalid_type            = 4       no_authority            = 5       unknown_error          = 6       header_not_allowed      = 7       separator_not_allowed  = 8       filesize_not_allowed    = 9       header_too_long        = 10       dp_error_create        = 11       dp_error_send          = 12       dp_error_write          = 13       unknown_dp_error        = 14       access_denied          = 15       dp_out_of_memory        = 16       disk_full              = 17       dp_timeout              = 18       file_not_found          = 19       dataprovider_exception  = 20       control_flush_error    = 21       not_supported_by_gui    = 22       error_no_gui            = 23       OTHERS                  = 24. *}  REPLACE   IF sy-subrc EQ 0.     MESSAGE i000 WITH text-006.  " Archivo generado como Exitoso.   ELSE.     MESSAGE i000 WITH text-005.  " Error al Exportar el Archivo.     STOP.   ENDIF. ENDFORM.                    " download_local *&---------------------------------------------------------------------* *&      Form  genera_arc_server *&---------------------------------------------------------------------* *      Genera Archivos Servidor *----------------------------------------------------------------------* FORM gera_arq_server. * Download Local Archivo 1   PERFORM download_server TABLES ti_saida1                           USING p_file1. * Download Local Archivo 2   PERFORM download_server TABLES ti_saida2                           USING p_file2. ENDFORM.                    " genera_arc_server *&---------------------------------------------------------------------* *&      Form  download_server *&---------------------------------------------------------------------* *      Exporta TI para Archivos no Servidor *----------------------------------------------------------------------* FORM download_server TABLES ti_saida STRUCTURE ti_saida1                       USING  file TYPE any.   OPEN DATASET file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.   IF sy-subrc NE 0.     MESSAGE i020 WITH file.     STOP.   ENDIF.   LOOP AT ti_saida.     TRANSFER ti_saida TO file.   ENDLOOP.   CLOSE DATASET file.   IF sy-subrc EQ 0.     MESSAGE i000 WITH text-006.  " Archivo generado como exitoso.   ELSE.     MESSAGE i000 WITH text-005.  " Error al Exportar el Archivo.     STOP.   ENDIF. ENDFORM.                    " download_server *&---------------------------------------------------------------------* *&      Form  calcula_mes *&---------------------------------------------------------------------* *      Calcula mes de acuerdo con mes inicial *----------------------------------------------------------------------* FORM calcula_mes USING mes TYPE any.   DATA: vl_mes2  TYPE i,         vl_mes3  TYPE i,         vl_mes4  TYPE i,         vl_mes5  TYPE i,         vl_mes6  TYPE i,         vl_mes7  TYPE i,         vl_mes8  TYPE i,         vl_mes9  TYPE i,         vl_mes10 TYPE i,         vl_mes11 TYPE i,         vl_mes12 TYPE i,         vl_mes13 TYPE i.   CLEAR mes.   IF ti_dados-lfdat+0(4) EQ p_ano.     vl_mes2  = p_mes + 1.     vl_mes3  = p_mes + 2.     vl_mes4  = p_mes + 3.     vl_mes5  = p_mes + 4.     vl_mes6  = p_mes + 5.     vl_mes7  = p_mes + 6.     vl_mes8  = p_mes + 7.     vl_mes9  = p_mes + 8.     vl_mes10 = p_mes + 9.     vl_mes11 = p_mes + 10.     vl_mes12 = p_mes + 11.     IF ti_dados-lfdat+4(2) EQ p_mes.       mes = '01'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes2.       mes = '02'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes3.       mes = '03'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes4.       mes = '04'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes5.       mes = '05'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes6.       mes = '06'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes7.       mes = '07'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes8.       mes = '08'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes9.       mes = '09'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes10.       mes = '10'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes11.       mes = '11'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes12.       mes = '12'.     ENDIF.   ELSE.     vl_mes2  = p_mes - 11.     vl_mes3  = p_mes - 10.     vl_mes4  = p_mes - 9.     vl_mes5  = p_mes - 8.     vl_mes6  = p_mes - 7.     vl_mes7  = p_mes - 6.     vl_mes8  = p_mes - 5.     vl_mes9  = p_mes - 4.     vl_mes10 = p_mes - 3.     vl_mes11 = p_mes - 2.     vl_mes12 = p_mes - 1.     vl_mes13 = p_mes.     IF ti_dados-lfdat+4(2) EQ vl_mes2.       mes = '02'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes3.       mes = '03'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes4.       mes = '04'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes5.       mes = '05'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes6.       mes = '06'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes7.       mes = '07'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes8.       mes = '08'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes9.       mes = '09'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes10.       mes = '10'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes11.       mes = '11'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes12.       mes = '12'.     ELSEIF ti_dados-lfdat+4(2) EQ vl_mes13.       mes = '13'.     ENDIF.   ENDIF. ENDFORM.                    " calcula_mes *&---------------------------------------------------------------------* *&      Form  select_eban *&---------------------------------------------------------------------* *      Selecciona datos de Requisiciones Pendientes para el Periodo *----------------------------------------------------------------------* FORM select_eban.   DATA: vl_tabix LIKE sy-tabix,         vl_days  TYPE i. * Selecciona datos de Requisiciones Pendientes   SELECT matnr werks reswk menge meins lfdat webaz     FROM eban     INTO TABLE ti_eban     WHERE loekz NE c_x AND           statu EQ c_n AND           werks IN s_werks AND           lfdat IN r_ano2 AND           ebakz NE c_x.   IF sy-subrc EQ 0.     LOOP AT ti_eban.       CLEAR: vl_tabix, vl_days.       vl_tabix = sy-tabix.       MOVE: ti_eban-webaz TO vl_days.       IF vl_days <> 0.         CALL FUNCTION 'BKK_ADD_WORKINGDAY'           EXPORTING             i_date = ti_eban-lfdat             i_days = vl_days           IMPORTING             e_date = ti_eban-lfdat.         MODIFY ti_eban INDEX vl_tabix.       ENDIF.       CLEAR ti_eban.     ENDLOOP. *    DELETE ti_eban WHERE lfdat NOT IN r_ano.     IF sy-subrc EQ 0.       SORT ti_eban BY matnr werks lfdat.     ENDIF.   ENDIF. ENDFORM.                    " select_eban *&---------------------------------------------------------------------* *&      Form  select_ekpo *&---------------------------------------------------------------------* *      Seleciona datos de Pedidos no finalizados para el Periodo *----------------------------------------------------------------------* FORM select_ekpo.   DATA: vl_tabix LIKE sy-tabix,         vl_days  TYPE i. * Selecciona datos de Pedidos no finalizados   SELECT p~matnr p~werks p~menge p~meins t~wemng t~glmng t~eindt p~webaz     FROM ekpo AS p     INNER JOIN eket AS t             ON p~ebeln EQ t~ebeln AND               p~ebelp EQ t~ebelp     INTO TABLE ti_ekpo     WHERE p~loekz NE c_l AND           p~werks IN s_werks AND           p~elikz EQ space AND           p~bstyp EQ c_f AND           t~eindt IN r_ano2.   IF sy-subrc EQ 0.     LOOP AT ti_ekpo.       CLEAR: vl_tabix, vl_days.       vl_tabix = sy-tabix.       MOVE: ti_ekpo-webaz TO vl_days.       IF vl_days > 0.         CALL FUNCTION 'BKK_ADD_WORKINGDAY'           EXPORTING             i_date = ti_ekpo-eindt             i_days = vl_days           IMPORTING             e_date = ti_ekpo-eindt.       ENDIF.       IF ti_ekpo-menge NE ti_ekpo-glmng AND           ti_ekpo-glmng GT 0.         ti_ekpo-menge = ti_ekpo-glmng - ti_ekpo-wemng.       ELSE.         ti_ekpo-menge = ti_ekpo-menge - ti_ekpo-wemng.       ENDIF.       MODIFY ti_ekpo INDEX vl_tabix.       CLEAR ti_ekpo.     ENDLOOP.     DELETE ti_ekpo WHERE eindt NOT IN r_ano.     IF sy-subrc EQ 0.       SORT ti_ekpo BY matnr werks eindt.     ENDIF.   ENDIF. ENDFORM.                    " select_ekpo *&---------------------------------------------------------------------* *&      Form  eban_ekpo *&---------------------------------------------------------------------* *      Trata datos EBAN y EKPO y agrupa por mes *----------------------------------------------------------------------* FORM eban_ekpo.   IF ti_eban[] IS INITIAL AND       ti_ekpo[] IS INITIAL.     MESSAGE i000 WITH text-004.  "  Dato No encontrado.     STOP.   ENDIF. * Datos de Requisiciones pendientes   LOOP AT ti_eban.     CLEAR ti_dados.     MOVE: ti_eban-matnr TO ti_dados-matnr,           ti_eban-werks TO ti_dados-werks,           ti_eban-menge TO ti_dados-menge,           ti_eban-meins TO ti_dados-meins,           ti_eban-lfdat TO ti_dados-lfdat.     APPEND ti_dados.   ENDLOOP. * Datos de Pedidos Pendientes   LOOP AT ti_ekpo.     CLEAR ti_dados.     MOVE: ti_ekpo-matnr TO ti_dados-matnr,           ti_ekpo-werks TO ti_dados-werks,           ti_ekpo-menge TO ti_dados-menge,           ti_ekpo-meins TO ti_dados-meins,           ti_ekpo-eindt TO ti_dados-lfdat.     APPEND ti_dados.   ENDLOOP. * Datos de Requisicioes Excepcionales, pero cada/ pedidos cancelados.   LOOP AT ti_ebanko.     CLEAR ti_dados.     MOVE: ti_ebanko-matnr TO ti_dados-matnr,           ti_ebanko-werks TO ti_dados-werks,           ti_ebanko-menge TO ti_dados-menge,           ti_ebanko-meins TO ti_dados-meins,           ti_ebanko-lfdat TO ti_dados-lfdat.     APPEND ti_dados.   ENDLOOP.   SORT ti_dados BY matnr werks lfdat menge. ENDFORM.                    " eban_ekpo *&---------------------------------------------------------------------* *&      Form  select_eban_ekpo *&---------------------------------------------------------------------* *      Selecciona datos Requisiciones cada Pedidos, pero pedidos cancelados *----------------------------------------------------------------------* FORM select_eban_ekpo.   DATA: vl_tabix LIKE sy-tabix,         vl_days  TYPE i. * Seleciona datos de Requisiciones Excepcionales   SELECT b~matnr b~werks b~reswk b~menge b~meins b~lfdat b~webaz     FROM eban AS b     INNER JOIN ekpo AS k                 ON k~ebeln EQ b~ebeln AND                   k~ebelp EQ b~ebelp     INTO TABLE ti_ebanko     WHERE b~loekz NE c_x AND           b~statu EQ c_b AND           b~werks IN s_werks AND           b~lfdat IN r_ano2 AND           b~ebakz NE c_x AND           k~loekz EQ c_l.   IF sy-subrc EQ 0.     LOOP AT ti_ebanko.       CLEAR: vl_tabix, vl_days.       vl_tabix = sy-tabix.       MOVE: ti_ebanko-webaz TO vl_days.       IF vl_days > 0.         CALL FUNCTION 'BKK_ADD_WORKINGDAY'           EXPORTING             i_date = ti_ebanko-lfdat             i_days = vl_days           IMPORTING             e_date = ti_ebanko-lfdat.         MODIFY ti_ebanko INDEX vl_tabix.       ENDIF.       CLEAR ti_ebanko.     ENDLOOP.     DELETE ti_ebanko WHERE lfdat NOT IN r_ano.     IF sy-subrc EQ 0.       SORT ti_ebanko BY matnr werks lfdat.     ENDIF.   ENDIF. ENDFORM.                    " select_eban_ekpo *&---------------------------------------------------------------------* *&      Form  Cant_basica *&---------------------------------------------------------------------* *      Convierte a Cant para la UM Basica de Material *----------------------------------------------------------------------* FORM qtde_basica.   DATA: vl_menge LIKE eban-menge.   READ TABLE ti_mara WITH KEY matnr = ti_dados-matnr BINARY SEARCH.   IF sy-subrc EQ 0 . * Comentado. * AND ti_dados-meins NE ti_mara-meins.     IF ti_mara-bstme IS INITIAL.       CLEAR vl_menge.       IF ti_dados-meins NE ti_mara-meins.         CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'           EXPORTING             i_matnr              = ti_dados-matnr             i_in_me              = ti_dados-meins             i_out_me            = ti_mara-meins             i_menge              = ti_dados-menge           IMPORTING             e_menge              = vl_menge           EXCEPTIONS             error_in_application = 1             error                = 2             OTHERS              = 3.         IF sy-subrc NE 0.           vl_menge = ti_dados-menge.         ENDIF.         ti_dados-menge = vl_menge.       ENDIF.     ELSE.       IF ti_dados-meins NE ti_mara-bstme.         CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'           EXPORTING             i_matnr              = ti_dados-matnr    "Material             i_in_me              = ti_dados-meins    "Und. Med. Básica             i_out_me            = ti_mara-bstme    "Und. Med. Compras             i_menge              = ti_dados-menge    "Cant.           IMPORTING             e_menge              = vl_menge           EXCEPTIONS             error_in_application = 1             error                = 2             OTHERS              = 3.         IF sy-subrc NE 0.           vl_menge = ti_dados-menge.         ENDIF.         ti_dados-menge = vl_menge.       ENDIF.     ENDIF.   ENDIF. ENDFORM.                    " Cant_basica *&---------------------------------------------------------------------* *&      Form  z_authority_check *&---------------------------------------------------------------------* *      text *----------------------------------------------------------------------* FORM z_authority_check .   TYPES: BEGIN OF bukrs_type,             bukrs TYPE t001-bukrs,           END  OF bukrs_type.   DATA:     bukrs_itab TYPE SORTED TABLE OF bukrs_type WITH NON-UNIQUE KEY bukrs     ,     bukrs_wa  TYPE bukrs_type.   SELECT bukrs   FROM t001   INTO TABLE bukrs_itab   WHERE bukrs IN s_bukrs.   IF sy-subrc EQ 0.     LOOP AT bukrs_itab INTO bukrs_wa.       AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'                 ID 'BUKRS' FIELD bukrs_wa-bukrs                 ID 'ACTVT' FIELD '03'.       IF sy-subrc NE 0.         MESSAGE i999(zb) WITH 'F_BKPF_BUK' bukrs_wa-bukrs.         LEAVE LIST-PROCESSING.       ENDIF.     ENDLOOP.     REFRESH bukrs_itab.   ENDIF. ENDFORM.                    " z_authority_check *&---------------------------------------------------------------------* *&      Form  z_selecciona_eord *&---------------------------------------------------------------------* *      Selecciona datos de tabla EORD - Lista de opciones de *      Suministro Compras *----------------------------------------------------------------------* FORM z_seleciona_eord.   DATA: tl_dados LIKE ti_dados OCCURS 0 WITH HEADER LINE.   REFRESH: eord_itab,             tl_dados[].   IF NOT ti_dados IS INITIAL.     tl_dados[] = ti_dados[].     SORT tl_dados BY matnr ASCENDING                       werks ASCENDING.     DELETE ADJACENT DUPLICATES FROM tl_dados COMPARING matnr werks.     SELECT matnr werks zeord lifnr flifn febel fresw       FROM eord       INTO TABLE eord_itab       FOR ALL ENTRIES IN ti_dados       WHERE matnr = ti_dados-matnr         AND werks = ti_dados-werks         AND ( febel = c_x or flifn = c_x or fresw = c_x ).     IF sy-subrc IS INITIAL.       SORT eord_itab BY matnr ASCENDING                         werks ASCENDING.     ENDIF.   ENDIF. ENDFORM.                    " z_selecciona_eord

Re: Modelo 347 y Criterio de Caja

$
0
0

Hola! yo tengo otra consulta sobre el Modelo 347.

Tengo algunos clientes que utilizan indicadores de iva exentos o al 0% en algunas operaciones que no deben aparecer en el modelo 347, como por ejemplo, las dietas. Estos indicadores, también figuran en documentos que sí tienen que aparecer en el informe, por tanto, no se pueden excluir los indicadores en los parámetros de selección del modelo.

Me dicen, que la manera de diferenciar estas operaciones es por tipo de documento. Según tengo entendido, desde la actualización, el modelo no tiene en cuenta las clases de documento, sólo los indicadores, ¿sabéis si estoy en lo cierto?

Por otro lado, ¿se os ocurre alguna manera de distinguir las operaciones?

Gracias!


Modelo 347, fies_m347

$
0
0

Hola! Tengo otra consulta sobre el nuevo Modelo 347.

 

Tengo algunos clientes que utilizan indicadores de iva exentos o al 0% en algunas operaciones que no deben aparecer en el modelo 347, como por ejemplo, las dietas. Estos indicadores, también figuran en documentos que sí tienen que aparecer en el informe, por tanto, no se pueden excluir en los parámetros de selección del modelo.

 

Me dicen, que la manera de diferenciar estas operaciones es por tipo de documento. Según tengo entendido, desde la actualización, el modelo no tiene en cuenta las clases de documento, sólo los indicadores, ¿sabéis si estoy en lo cierto?

Por otro lado, ¿se os ocurre alguna manera de distinguir las operaciones?

Gracias!

Re: Modelo 347 y Criterio de Caja

$
0
0

Hola María

 

La clase de documento BLART sigue pudiendose distinguir pulsando en delimitaciones opcionales, hablo del RPFIES_M347.

 

No sé si te ayuda.

 

 

Un saludo.

Re: Modelo 347 y Criterio de Caja

$
0
0

Buenos días, acabo de encontrar un problema en mis ficheros de 347, a ver si a alguien le pasa: "no me agrupa por NIF", esto es si tengo a un cliente con varios codigos de cliente pero con el mismo NIF no me lo está agrupando. Me ha pasado con un cliente, que además de cliente es proveedor y que tiene cuatro cuentas de cliente. Pues el caso es que me ha generado 5 lineas para ese tercero, una de proveedor y cuatro de cliente... Antes siempre agrupaba por nif como es lógico, en años anteriores, ahora no me lo hace. ¿alguien tiene esta casuística y este problema? Gracias.

Re: Modelo 347 y Criterio de Caja

$
0
0

Hola Antonio,

En el RPFIES_M347  no veo la posibilidad de filtrar por clase de documento BLART. Delimitaciones opcionales no ofrece esa opción.

Creo que la solución está en extraer el informe por detalle, filtrar por las clases de documento que sí deben aparecer en el informe, seleccionar los números de documento y volver a la pantalla de selección inicial para incluir esos nº de documentos.

 

Gracias.

Re: Modelo 347 y Criterio de Caja

$
0
0

Hola

 

Deberías poder si no me estoy equivocando en lo que buscas. Pulsa en el botón de  colores y luego en Cabecera de documento tienes el campo Clase de documento BKPF-BLART

 

2015-02-17 12_19_31-Report RPFIES_M347.jpg

 

Un saludo

Re: Modelo 347 y Criterio de Caja

$
0
0

Hola

 

¿La clave operación es la misma?

 

Un saludo.

Re: Modelo 347 y Criterio de Caja

$
0
0

Muchas gracias! eso es lo que andaba buscando.

 

Gracias Antonio,

Un saludo


SAP IDES para LOGON 7.3

$
0
0

Buenas tardes,

 

Actualmente trabajo como programador de ABAP, pero no tengo la oportunidad de ver algo mas funcional en SAP.

 

Quisiera saber si existe una versión de IDES para el SAP LOGON 7.3 donde tenga acceso a la versión mas funcional, o algún acceso a SAP R/3 para ver los diferentes módulos.

 

Gracias y saludos.

Carga por Call Transaction

$
0
0

Hola a todos.
Estoy haciendo un programita por Call Transaction, pero me queda la duda en cuanto si lo estoy haciendo bien. He leido manuales y me dice que puedo verificar si ha hecho la carga tanto en la misma transacción como desde la Se11.
He intentado ambos, pero me dice que ya esta creado el acreedor.

 

Esto es lo que tengo:

 

REPORT ybatch04 NO STANDARD PAGE HEADING LINE-SIZE 255.

 

*INCLUDE bdcrecx1.

 

* Batchinputdata of single transaction
DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
* Messages of call transaction
DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

 

* Declaración de tipos.
TYPES: BEGIN OF ty_datos,
name1 LIKE lfa1-name1,
sortl LIKE lfa1-sortl,
land1 LIKE lfa1-land1,
spras LIKE lfa1-spras,
END OF ty_datos.

 

* Declaración de tabla interna.
DATA: lt_datos TYPE STANDARD TABLE OF ty_datos WITH HEADER LINE.

 

* Declaración de variable.
DATA: lv_filename TYPE string.


* Pantalla de selección.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: pa_file LIKE ibipparms-path.
SELECTION-SCREEN: END OF BLOCK b1.


* Pedir ruta y archivo.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_file.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = pa_file.

 

START-OF-SELECTION.

 

lv_filename = pa_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lv_filename
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = lt_datos
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


LOOP AT lt_datos.
CLEAR: bdcdata.
REFRESH: bdcdata, messtab.

 

* Dynpro 1.
PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-KTOKK'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF02K-LIFNR'
* record-lifnr_001.
'10393'.
PERFORM bdc_field USING 'RF02K-KTOKK'
* record-ktokk_002.
'0001'.


* Dynpro 2.
PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-SPRAS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=UPDA'.
PERFORM bdc_field USING 'LFA1-NAME1'
* record-name1_003.
lt_datos-name1.
PERFORM bdc_field USING 'LFA1-SORTL'
* record-sortl_004.
lt_datos-sortl.
PERFORM bdc_field USING 'LFA1-LAND1'
* record-land1_005.
lt_datos-land1.
PERFORM bdc_field USING 'LFA1-SPRAS'
* record-spras_006.
lt_datos-spras.


* Llamar de Transacción.
CALL TRANSACTION 'XK01' USING bdcdata
MODE 'A'
UPDATE 'P'
MESSAGES INTO messtab.


* Mensajes de Resultado.
READ TABLE messtab WITH KEY msgtyp = 'E'.
IF sy-subrc EQ 0.
* Caso Error.
WRITE: / 'Error'.
ELSE.
READ TABLE messtab WITH KEY msgtyp = 'S'.
IF sy-subrc EQ 0.
* Caso correcto.
WRITE: / 'Hola', messtab-msgv1.
ENDIF.
ENDIF.
ENDLOOP.


*&---------------------------------------------------------------------*
*& Form bdc_dynpro
*&---------------------------------------------------------------------*
* Start new screen
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. "BDC_DYNPRO


*&---------------------------------------------------------------------*
*& Form bdc_field
*&---------------------------------------------------------------------*
* Insert field
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
IF fval IS NOT INITIAL.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDIF.
ENDFORM. "BDC_FIELD


Alguien que me pueda orientar??
Se los agradeceré

 


Saluditos

Re: Modelo 347 y Criterio de Caja

$
0
0

Muy buenas, nosotros tenemos algunos problemas con aquellos clientes que tienen facturas financieras, con clase de documento financiero DR.

 

En estos clientes nos aparecen diferencias caprichosas que no tienen nada que ver con ningún importe de las partidas de cliente, entre el volumen de negocio FD10N y la cifra que nos aparece en la nueva transacción RPFIES_M347.

 

Sin embargo tirando el reporte del año pasado nos cuadran todos los importes con el volumen de negocio de la FD10N

 

No sé si hacemos algo mal a la hora de tirar el listado, nos falta alguna nota (dado que aún siguen sacando notas) o existe algún cabo suelto en el informe.

 

Alguna idea?

 

Saludos

Eduardo Rojo

Re: Norma de liquidación duplicada en orden de producción

$
0
0

Ahí está amigo, en la 3er captura.

Cada linea al 100% creo que es el error, eso implicaría el 200% ...

Tienes que ponerle 50% a cada una, o bien algo que entre las dos de 100% ... ej: 70% y 30%.

O bien eliminar una linea.

 

Proba a ver si funciona así

Re: Bloqueo de rutas

$
0
0

Hola Victor:

 

Ya intentaste desactivar la relevancia para transportes en la transaccion 0VTC:

 

Captura 1.JPG

 

Espero te sea de utilidad

 

Saludos

Jose Antonio

Viewing all 2362 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>