Вы находитесь на странице: 1из 22

Programacin ABAP

ndice:

Programacin ABAP

Introduccin:
Estas pginas pretender servir de orientacin y ayuda para aquellos programadores que no estn habituados al mdulo de Recursos Humanos, ya que la programacin de dicho mdulo tiene algunas diferencias con el resto de mdulos de SAP. Tambin se incluyen un conjunto de funciones que posiblemente sean en su mayora conocidas pero que se ha considerado que pueden resultar de utilidad. Otro de los puntos importantes para los programadores HR es la confidencialidad de datos, esto es muy importante para todos los mdulos de SAP y en especial para HR ya que los datos a los que se tiene acceso son muy delicados y es muy importante para todos nuestros clientes que seamos muy serios con este tema.

Infotipos:
Un infotipo es: Una agrupacin de datos homognea en la que se recogen los datos del empleado, ya sea su posicin en la empresa, sus datos fiscales, sus datos personales, etc. Las transacciones para tratar los infotipos son : - PA20 Visualizar. - PA30 Modificar. - PA40 Medidas de personal. La tabla Pannnn (Registro maestro de personal Infotipo nnnn) esta compuesta por: - Campo MANDT. - Estructura PAKEY (Clave para datos maestros de personal) en la que se guardan los datos fijos de todos los infotipos como: nmero de personal y fechas de validez. - Estructura PSHD1 (Datos maestros de personal Campos de gestin) en esta se guardan datos de gestin como: fecha de la ltima modificacin y usuario que la realizo. - Estructura PSnnnn (Registro maestro de personal Infotipo nnnn) Esta es propia de cada uno de los infotipos. - Estructura CI_Pnnnn esta no estar creada en un inicio, nosotros la podemos crear para ampliar el infotipo estndar y que nuestra ampliacin sea siempre respetada por SAP. Para leer los datos de estas tablas existen macros y funciones, algunas de las cuales estn incluidas en este documento, pero ello no que implica que no se puedan hacer selects normales, generalmente suelen

Programacin ABAP
ser para traer campos concretos no todo el registro y suelen ser select sigel. Cada intotipo tiene tambin su estructura Pnnnn que es idntica a la tabla Pannnn pero que no contiene el campo mandante. El Modulpool del Infotipo nnnn es MPnnnn00: - Generalmente como mnimo tiene dos dynpros la 2000 es la normal y la 3000 es la del resumen. Medidas de personal: Para no tener que acceder a cada infotipo individualmente y registrar los datos pertinentes, el sistema puede agrupar los infotipos ms importantes en infogrupos a los que se acceder mediante las medidas de personal. Los procedimientos de personal, tales como la contratacin de un empleado, el cambio organizativo o la baja de un empleado, se representan mediante medidas de personal individuales en la Gestin de personal. Cada medida de personal esta relacionada con un infogrupo. El infotipo 0000 guarda la medidas de personal de cada empleado. Infogrupos: Agrupa los infotipos ms importantes con el fin de guiar al usuario en el tratamiento de los datos del empleado y se ejecuta mediante de una medida de personal. Cada infogrupo contiene los infotipos que se deben actualizar para registrar la medida. Los infotipos se recuperan sucesivamente, de manera que puede actualizarlos. Por ejemplo, en la medida de personal Contratacin el sistema presentar automticamente todos los infotipos en los que se deben efectuar entradas para contratar a un empleado para que el usuario pueda actualizarlos. Esto garantiza que todos los datos bsicos se registren en el sistema. Esta funcin facilita tambin la introduccin de los datos de forma consistente, ya que no es necesario acceder a cada uno de los infotipos de la medida de personal individualmente. Parar crear o ampliar infotipos: Se usan las transacciones PM01(Infotipos de PA), PPCI(Infotipos PD). Cuando creamos un infotipo con una de estas transacciones, l ya nos crea buena parte de lo necesario para su funcionamiento como pueden ser las dynpros, algunos modulos standars

Programacin ABAP

Get pernr:
Lectura de la tabla pernr que pertenece a la base de datos lgica PNP. Esta instruccin rellena todas las tablas definidas como infotypes. Si se quiere que no se rellene el infotype ha de ser node n.

Programacin ABAP

Macros:
HR-READ-INFOTYPE pernr nnnn pnnnn begda endda. Selecciona los registros del infotipo que tengan como mnimo un da dentro de la fechas de seleccin y los pone en la tabla interna(no necesita la BD lgica, pero las tablas internas han de ser definidas de tipo pnnnn y no pannnn). Pernr: Nmero de personal a seleccionar. nnnn: Nmero del infotipo. Pnnnn: Tabla interna. Begda: fecha inicio de la seleccin. Endda: fecha fin de la seleccin. RP_PROVIDE_FROM_LAST Pnnnn Subtipo Pn-begda Pn-endda. Pone en cabecera el ltimo registro vlido dentro del perodo de seleccin de datos ledos de la base de datos. RP_PROVIDE_FROM_ FRST Pnnnn Space Pn-begda Pn-endda. Se pone en cabecera el primer registro vlido dentro del perodo de seleccin de datos ledos de la base de datos. Pnnnn: Tabla interna en la que se han guardado los datos ledos de la base de datos (generalmente con el evento Get Pernr). Subtipo: El subtipo que nos interesa seleccionar. En el caso de no existir subtipos o que no nos interesen en el subtipo pondremos Space. Pn-begda: Fecha inicio de nuestra seleccin. Pn-endda: Fecha fin de nuestra seleccin. RP-READ-T001P p0001-werks p0001-btrtl reaccin. Lee el registro que correspondiente de la tabla de Sociedades. P0001-werks: divisin de personal. P0001-btrtl: subdivisin de personal. Reaccin: en caso de que el sistema no encuentre los datos correspondientes: X = interrupcin del report acompaada de un mensaje de error. SPACE = para SY-SUBRC se indica el valor 4. RP-READ-ALL-TIME-ITY begda endda. Lee e inserta en la tablas definidas como infotipos de tiempos(p2001, ,p2999) todos los registros que tengan como mnimo 1 da dentro de las fechas de seleccin.

Programacin ABAP Funciones SAP:


ABAP_DOCU_DOWNLOAD: Download ABAP documentation in HTML format. APPL_LOG_DELETE: With this function module you delete logs in the database according to specified selection conditions. APPL_LOG_DISPLAY: With this function module you can analyze logs in the database. APPL_LOG_DISPLAY_INTERN: With this function module you can analyze logs in local memory, e.g. when you have only collected log records at runtime and do not want to write to the database. APPL_LOG_INIT: This function module checks whether the specified object or sub-object exists and deletes all existing associated data in local memory. APPL_LOG_READ_DB: With this function module you read the log data in the database for an object or sub-object according to specified selection conditions. APPL_LOG_READ_INTERN: With this function module you read all log data whose log class has at least the specified value, from local memory, for the specified object or sub-object. APPL_LOG_SET_OBJECT: With this function module, you create a new object or sub-object for writing in local memory. With a flag you can control whether the APPL_LOG_WRITE_... messages are written in local memory or are output on the screen.

Programacin ABAP

BDC_OBJECT_DELETE: CALL FUNCTION 'BDC_OBJECT_DELETE' EXPORTING queue_id = P_QID. Borra el BI. En este caso tambin necesitamos la cola. BDC_OBJECT_READ: SELECT SINGLE qid FROM APQI into p_qid WHERE GROUPID EQ MAPENAME. CALL FUNCTION 'BDC_OBJECT_READ' EXPORTING QUEUE_ID = P_QID TABLES DYNPROTAB = BDCDATA. Esta funcin recupera la sesin de BI. Necesita la cola del BI (QUID Cola Identificacin (clave unvoca)) para recuperarlo a la tabla DYNPROTAB. El campo QUID(cola) esta en la tabla APQI y para encontrado usamos el nombre del juego de datos que se guarda en el campo GROUPID. Si la tabla bdcdata no es inicial es que hemos podido recuperar el juego de datos. CONVERT_TO_LOCAL_CURRENCY: CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' EXPORTING date = '20020101' foreign_amount = p_valor foreign_currency = p_ori local_currency = p_cal IMPORTING local_amount = p_valor. Convierte el importe que se pasa a foreign_amount de la moneda p_ori a la moneda p_cal y nos lo retorna por local_amount.

DAY_IN_WEEK: CALL FUNCTION 'DAY_IN_WEEK' EXPORTING datum = P_DIA IMPORTING

Programacin ABAP
WOTNR = L_DIA_SEMANA.. Como parmetro de entrada tiene una fecha y de salida el da de la semana que le corresponde (en nmero). La funcin 'FIMA_X_DAY_IN_MONTH_COMPUTE' trae el da y la semana. HR_READ_INFOTYPE: Call function HR_READ_INFOTYPE Exporting Pernr = <persona> Infty = nnnn Begda=<fecha_ini> Endda=<fecha_fin> Importing Subrc=<return> Tables Infty_tab=<pnnnn>. Selecciona los registros del infotipo que tengan al menos un da dentro de la fechas de seleccin y los pone en la tabla interna (no necesita la BD lgica), realiza una verificacin de autorizacin. nnnn: Nmero del infotipo a cargar. Pnnnn: tabla interna que a de estar definida como Infotypes. MONTH_NAMES_GET: data: begin of meses occurs 0. include structure t247. data: end of meses. CALL FUNCTION 'MONTH_NAMES_GET' EXPORTING LANGUAGE = SY-LANGU TABLES month_names = meses. Nos devuelve en la tabla meses los nombres de todos los meses en el idioma que se le indique. POPUP_TO_INFORM: CALL FUNCTION 'POPUP_TO_INFORM' EXPORTING titel = 'Titulo del mensaje.' txt1 = 'Mensaje informativo ' txt2 = 'aparece en una pantalla'.

Programacin ABAP

Aparece en pantalla un popup informativo. POPUP_TO_CONFIRM: CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING TEXT_QUESTION = Pregunta TEXT_BUTTON_1 = Texto del primer botn TEXT_BUTTON_2 = Texto del segundo botn DISPLAY_CANCEL_BUTTON = space IMPORTING ANSWER = resp. Nos muestra un Popup por pantalla y espera una respuesta que guarda en resp si a display_cancel_button le damos el valor Space no aparece el botn de cancelar, si no le decimos nada por defecto aparece un botn para cancelar. De este tipo hay varias funciones otro ejemplo serias POPUP_TO_DECIDE_INFO. RP_FILL_WAGE_TYPE_TABLE: DAta: begin of ZPPBWLA occurs 0. include STRUCTURE PBWLA. data: end of ZPPBWLA. CALL FUNCTION 'RP_FILL_WAGE_TYPE_TABLE' EXPORTING APPLI = 'E' BEGDA = p0008-begda ENDDA = '99991231' TCLAS = 'A' pernr = pernr-pernr SUBTY = '0 ' DLSPL = 'X' tables ppbwla = Z PPBWLA Trae a la tabla ZPPBWLA todos los cc-nminas con sus importes del infotipo 0008, en este caso, ya sean directos o indirectos dichos ccnminas. Puede traer otros infotipos. La funcin RP_EVALUATE_INDIRECTLY_P0008 es especifica para el intotipo 0008 y funciona de forma similar. RP_GET_CURRENCY:

Programacin ABAP
CALL FUNCTION 'RP_GET_CURRENCY' EXPORTING MOLGA = '04' BEGDA = sy-datum IMPORTING WAERS = moneda. Le pasamos el agrupador de pases y la fecha y nos trae la moneda que le corresponde. RP_LAST_DAY_OF_MONTHS: call function 'RP_LAST_DAY_OF_MONTHS' exporting day_in = p_begda importing last_day_of_month = p_endda exceptions day_in_no_date = 1 others = 2. Le pasamos una fecha p_begda y nos devuelve el ltimo da de ese mes en la variable p_endda. WS_DOWNLOAD: CALL FUNCTION 'WS_DOWNLOAD' EXPORTING filename = downfile filetype = 'ASC' TABLES data_tab = rg. Pasa los datos de la tabla interna RG al fichero que se le indica en el filename con el tipo filetype.

WS_FILENAME_GET: CALL FUNCTION 'WS_FILENAME_GET' EXPORTING def_filename ='' def_path = 'C:' mask = maske mode = 'O' title = 'Seleccione un archivo' IMPORTING

Programacin ABAP
filename = downfile EXCEPTIONS inv_winsys =1 no_batch =2 selection_cancel = 3 selection_error = 4 OTHERS = 5. Esta funcin nos mostrara pantalla propia de Windows para seleccionar un fichero. Downfile es el nombre del fichero y Maske es el tipo de fichero que queremos buscar. WS_UPLOAD: call function 'WS_UPLOAD' EXPORTING filename = p_file filetype = 'ASC' TABLES data_tab = tabla Pasa los datos del fichero a la tabla.

Programacin ABAP

Autorizaciones:
Verificacin de autorizacin para comandos SQL. Select * from pannnn Where pernr eq <pernr> and begda and endda AUTHORITY-CHECK object P_ORGIN id INFTY field <infotipo> id SUBTY field <subtipo> id AUTHC DUMMY id PERSA DUMMY id PERSG DUMMY id VDSK1 DUMMY. Despus de hacer la seleccin de un infotipo con un comando SQL podemos chequear que el usuario tenga autorizaciones. Si no tiene autorizacin el sy-subrc <> 0. Funcin de autorizaciones. CALL FUNCTION 'GET_AUTH_VALUES' EXPORTING OBJECT1 = parmetro * OBJECT2 ='' * OBJECT3 ='' * OBJECT4 ='' * OBJECT5 ='' * OBJECT6 ='' * OBJECT7 ='' USER = usuario TABLES VALUES = I_tab * EXCEPTIONS * USER_DOESNT_EXIST = 1 * OTHERS =2 . Retorna todas las autorizaciones de la persona para los objetos de autorizacin solicidados. Parmetro: Objeto de autorizacin que se quiere consultar (Ej.: 'P_ORGIN' (Autorizaciones de PA)).

Programacin ABAP
I_tab: Tabla en la que nos retornara las autorizaciones ha de tener la estructura de la tabla del diccionario US335. Usuario: Usuario de la persona que ejecuta el programa(sy-uname).

PROVIDE:
Loop a una tabla interna definida como infotypes. - Provide * from pnnnn Between pn-begda And pn-endda. ----------Endprovide. Loop a la tabla pnnnn teniendo en cuenta la fechas de seleccin. Provide * from p0001 * from p0002 * from pnnnn between pn-begda and pn-endda. -----------------Endprovide. Cada particin de uno de los infotipos involucrados conduce a una particin del perodo de seleccin. En la cabecera de cada una de las tablas tendremos por cada uno de las pasadas su registro con las fechas ms restrictivas de la tabla que estn implicadas en el provide. Provide * from p0002 * from p0006 between pn-begda and pn-endda where p0006-subty = <n>. -----------------Endprovide. Igual que el anterior pero el proceso se limitan los cortes de uno de los infotipos al subtipo indicado. -

Programacin ABAP

Otros:
Seleccin de datos dependientes del tiempo: En HR es muy importante tener en cuenta la fechas ya que casi todos los datos de las tablas tiene unos periodos de validez. RP_PROVIDE_FROM_LAST P0001 Subtipo Pn-begda Pn-endda La tabla t500c contiene la clave de moneda para cada pas. - Buscamos la moneda que tenia a fecha de inicio del infotipo:
Select single * from t500c Where LAND1 eq 'ES' and begda le p0001-begda and endda ge p0001-begda.

- Buscamos las monedas que ha tenido durante la validez del infotipo: Select * from t500c into table itab where land1 eq ES and begda le p0001-begda and endda ge p0001-endda. - Buscamos las monedas que ha tenido sin contar la validez del infotipo: Select * from t500c into table itab where land1 eq ES begda lt p0001-begda and endda gt p0001-endda. Estructuras repetidas en infotipos: - rea de trabajo: data: begin of vacaciones, uar like p0005-uar01, uan like p0005-uan01, ube like p0005-ube01, uen like p0005-uen01, uab like p0005-uab01, end of vacaciones. - Lectura del registro. - Carga de los datos en la tabla que hemos creado do 6 times varying vacaciones from p0005-uar01 next p0005-uar02.

Programacin ABAP
-------enddo. Se repite 6 veces ya que es el nmero de veces que se repiten la estructura en el infotipo. La estructura de repeticin del infotipo 5 se segmenta y se pone a disposicin den bloques en el rea de trabajo. Con from <nombre de campo> se marca el punto de arranque en la memoria principal. Next <nombre de campo> determina el incremento para los siguientes puntos de arranque. Lectura del Cluster de nmina: Es donde estn guardados todos los datos de la nmina del empleado. Est compuesto de distintas estructuras. En primer lugar se ha de leer la RGDIR del empleado que representa la raz del rbol del cual cuelgan el resto de estructuras, para ello tenemos unas macros. cd-key-pernr = pernr. rp-imp-c2-cd-nobuff. Si no se ha producido ningn error ( rp-imp-cd-subrc = 0 ), leemos la tabla que nos interese (las macros pueden depender de la tabla que se quiera leer, este ejemplo es para la RT). rx-key-pernr = pernr. unpack rgdir-seqnr to rx-key-seqno. rp-imp-c2-re. Esto hay que hacerlo por cada uno de los periodos(registros) de la RGDIR que se quiera leer. sort rgdir by fpper descending inper descending fpend descending. loop at rgdir where fpbeg <= pn-begda and fpend >= pn-endda and SRTZA = 'A'. fpbeg: Fecha inicio. fpend: Fecha fin. srtza: Estado de la nomina (A: Actual). Ya tenemos la RT cargada para poder leerla. Podemos hacer un loop o lo que nos interese con ella. Estas macros necesitan unas variables que estn definidas en unos includes (para el caso anterior). RPPPXD10 RPPPXD00 RPC2RX00 RPC2REE0

Programacin ABAP
RPC2CD00 RPPPXM00 Lectura del Cluster de nmina simulada: En este caso lo que vamos a hacer es lanzar nosotros una simulacin de nmina (lanzarla en proceso de test) y leer el resultado. Este resultado se guarda internamente en la base de datos pero no en el cluster del empleado. data: begin of i_rt occurs 150, include structure pc207. data: end of i_rt. * Preparamos lo que nos hace falta para luego recuperar la rt simulada clear l_clave. concatenate '%' itab_pernr-pernr l_periodo l_ejercicio '%' into l_clave. concatenate 'RT' itab_pernr-pernr l_periodo l_ejercicio sy-uzeit into l_area_memoria_rt.

select srtfd aedat into (l_srtfd, l_aedat) from indx where relid eq 'ST' and srtfd like l_clave and srtf2 eq 0. endselect. wa_indx-aedat = sy-datum. export i_rt from i_rt to database indx(st) from wa_indx id l_area_memoria_rt. * Lanzamos el rpcalce0 para cada empleado SUBMIT RPCALCE0 WITH PNPXABKR = L_ABKRS WITH PNPPERNR-low = itab_pernr-pernr WITH SCHEMA = 'ZFIN' WITH TST_ON = 'X' with PNPTIMRA = 'X' with PNPPABRP = l_periodo with PNPPABRJ = l_ejercicio exporting list to memory with PRT_PROT eq ' ' with ECALLED = 'X' * via selection-screen

Programacin ABAP
AND RETURN. * Prepara los datos para recuperar la rt simulada select srtfd aedat into (l_srtfd, l_aedat) from indx where relid eq 'ST' and srtfd like l_clave. if l_srtfd cp 'RT*'. l_area_memoria_rt = l_srtfd. endif. endselect. * Recuperamos la rt simulada import i_rt = i_rt from database indx(st) id l_area_memoria_rt to wa_indx. Para que esto funcione hay que mandar la RT a la tabla INDX cuando se este simulando.

Llamadas a subrutinas en tiempo de ejecucin: En la tabla t596f se guardan el procedimiento(subrutina) (t596f-modna) y el programa en el que esta(t596f-pgmna). Perfom (t596f-modna) in program (t596f-pgmna) using Lectura de caractersticas: La funcin HR_FEATURE_BACKFIELD lee caractersticas, cada caracterstica necesita una estructura determinada esta estar en la tabla T549D(ndice de caractersticas) en el campo STRUC. La transaccin para poder ver las caractersticas es PE03. move-corresponding psyst to pme17. move-corresponding t001p to pme17. call funtion HR_FEATURE_BACKFIELD exporting feature = PLOGI struc_content = pme17 importing back = l_back. Llamamos a la caracterstica plogi con la estructura pme17 anteriormente rellenada y nos retorna el valor en l_back. (El tipo de valor de retorno depende de la caracterstica).

Programacin ABAP

Ordenes de transportes:
Es importante tener mucho cuidad cuando se incluye un programa en una orden de transporte ya que sino luego nos puede causar muchos problema. - En primer lugar no utilizar una orden en la que el contenido no este relacionado con lo que estamos tratando en ese momento ya que puede darse la situacin de que se tenga que transportar algo de lo que hay dentro y no otra de las partes. - Cuando estemos creando tablas y elementos de datos tener muy presente el orden en el que se ha de transportar. O bien creamos una orden para los elementos otra para las tablas y otra para los reports y se transportan en este orden o una para todo pero en este caso hemos de tener claro que despus no tendremos que transportar antes la tabla para parametrizarla o cosas por el estilo. - Programas con includes. En este caso todo lo que tenemos son reports pero el orden tambin es muy importante ya que o bien lo pasamos todo junto o tendremos que tener en cuenta que es lo que necesita cada include(Ej. Si en uno declaramos la variables muy posiblemente sea el primero que se tiene que transportar). - Cuando nos creemos una tarea en la orden de un compaero siempre comentar con el que es lo que tenemos que hacer y que el nos cuente que es lo que hay en la orden para despus no tener problemas con el transporte. - A la hora de rellenar la descripcin de la orden de transporte intentar que sea clara y poner al inicio el modulo. Si adems podemos indicar que contiene mejor(Ej. Include con definicin de datos).

Modulpools:
Los modulopools son un conjunto de varios elementos: Programa principal Dynpros Status GUI Ttulos GUI Mdulos PBO: Mdulos PAI Includes Por esta razn es importante que estn bien estructurados ya que sino es as despus nos resulta muy difcil encontrar algo y sobre todo si es otro compaero el que ha de buscarlo.

Programacin ABAP
Programa principal tendr definidos todos los includes. - Las Dynpros, los Status GUI y lo Ttulos GUI sern todos del programa principal. - Los Mdulos PBO y PAI tendrn nombres claros y a ser posible que incluyan el nmero de la dynpro a la que pertenecen. - Los includes es lo que mejor hay que estructurar, crear tantos como sea necesario, pero sin pasarnos, en principio uno para los mdulos PBO, otro para los PAI, otro en el que definiremos nuestros procedimientos(Forms) y otro para la definicin de datos.

User Exit:
Son puertas que nos deja SAP para que introduzcamos cdigo de cliente a programas standars, que sern respetados en los parches que mande SAP. Estas user exit SAP las coloca donde considera que nos pueden ser tiles. Nosotros solo podemos usarlas en el caso de que estn colocadas donde nos hacen falta, si las que hay no nos sirven no podemos hacer nada (tocar el cdigo standar que se recomienda no hacer a no ser que sea imprescindible). Las user exit pueden ser procedimientos(performs) que el programa original llame pero no estn creados, en este caso lo que tendremos que hacer es crear el procedimiento con el cdigo que necesitemos. Tambin puede ser que los procedimientos se seleccionen de una tabla en tal caso lo que habr que hacer es parametrizar la tabla con nuestro procedimiento. Y otra posibilidad es que sea una funcin la que llame a un report y al crearlo nosotros introducimos nuestro cdigo.

Nomenclaturas:
A continuacin se detalla el convenio de nomenclaturas a utilizar para denominar los diferentes tipos de objetos SAP creados por el cliente, a no ser que el cliente i/o jefe de proyecto den una nomenclatura propia para dicho proyecto.
Objeto Nomenclatura Contador Longitu d

Programacin ABAP
Programa ABAP Tabla Transparente Dynpros Adicionales (n) Clase Desarrollo Mdulo Funciones Grupo Funciones Infotipo Propio (n) Module Pool Propio Includes Module Pool Dynpros Module Pool Dominio Elemento de Datos ZHRAA ZHR 9000-9999 Z Z_HR ZH 9000-9999 ZHRAAnnnn00 ZHRAAXXXX 1000-2000-3000 ZHR ZHR NNN *(AA = Mdulo) NN XXX NNNN NN NNNN *(corresponde a nnnn) NN (10:DATA, 20:PAI, 30:PBO, 40:Rutinas) *Numeracin Estndar SAP XXXXXXX XXXXXXX 8 5 4 4 8 4 4 11 11 4 10 10

Donde : AA = Cdigo del Mdulo dentro de HR al que pertenece. NN = Cdigo numrico libre. XX = Cdigo alfanumrico libre. Las entradas en negrita son fijas y corresponden a la denominacin del mdulo.

Plantilla de programas
************************************************************************ * PROGRAM ZHR***** - Ttulo * * * * Descripcin *

Programacin ABAP
* * * * ************************************************************************ * AUTOR: PLAUT CONSULTING(FDG) FECHA: DD.MM.AAAA * ************************************************************************ program zxxxxxxx * no standard page heading * line-size 80 . ************************************************************************ ** INCLUDES ** ************************************************************************ *include <icon>. ************************************************************************ ** DEFINICIN DE TABLAS DDIC ** ************************************************************************ tables: pernr, .. ************************************************************************ ** DEFINICIN DE INFOTIPOS ** ************************************************************************ Infotypes: nnnn name XXXXX, . ************************************************************************ ** DEFINICIN DE CONSTANTES ** ************************************************************************ *data: . ************************************************************************ ** DEFINICIN DE VARIABLES ** ************************************************************************ *data: . ************************************************************************ ** DEFINICIN DE TABLAS INTERNAS ** ************************************************************************ * Descripcin *data: begin of itab_xxxxx occurs 1000, * aa, * bb, * end of itab_xxxxx. ************************************************************************ ** DEFINICIN DE ESTRUCTURAS ** ************************************************************************ * Estructura con los datos de estatus del centro (en listado detallado) *data: begin of struct_xxxx. * include structure i_xxxx. *data: end of struct_xxxx. ************************************************************************ ** SELECTION-SCREEN ** ************************************************************************ *selection-screen begin of block .... * parameters: p_ * select-options: so_ *selection-screen end of block .... ************************************************************************ *********************** PROCESO PRINCIPAL ****************************

Programacin ABAP
************************************************************************ ************************************************************************ ** AT SELECTION-SCREEN ** ************************************************************************ at selection-screen. ************************************************************************ ** INITIALIZATION ** ************************************************************************ initialization. ************************************************************************ ** START-OF-SELECTION ** ************************************************************************ start-of-selection. ************************************************************************ ** Lectura de la Base de datos lgica ** ************************************************************************ Get pernr. provide * from Pnnnn between PN-begda and PN-endda. _________ Endprovide.

************************************************************************ ** AT LINE-SELECTION ** ************************************************************************ at line-selection. ************************************************************************ ** TOP-OF-PAGE ** ************************************************************************ top-of-page. ************************************************************************ ** END-OF-PAGE ** ************************************************************************ end-of-page.

************************************************************************ ** RUTINAS ADICIONALES ** ************************************************************************

Вам также может понравиться