Apuntes SAP 22 Julio 2010 C
-
Upload
alejandro-reyes-valle -
Category
Documents
-
view
431 -
download
8
Transcript of Apuntes SAP 22 Julio 2010 C
mandante:400
usuario:dgutirriez
pass:daniel17
opcion 2 seguir en secion abierta
se38 trancciones
editor abad
ZPROGRAMA9_ARV
SINTAXIS PARA REALIZAR UN PROGRAMA
OFFSET --- VARIABLE DEL SISTEMA
EVALUADOR DE CADENAS
LOS ESPACIOS CUENTAN EN OPERADORES DE CADENAS
PAQUETE Z001
PARA GRABAR
VAMOS A CREADOR 4 RADIO BOTON
2 PARA MITER 5 CARACT.
8 RADIO BOTON
pretty printer
co regresa verdadero regresa el no de caracteres encontrados
co falso regresa la posicion del caparacter del parametro1 el caracter que no se encontró
aun uno no escriba los espacios los toma en cuenta
RB_1
RB_2
RB_4
RB_5
RB_6
RB_7
RB_8
Todos los caracteres se evalúan de los operadores 1 deben existir en el operador 2. Incluyendo espacio aunque uno no lo ponga.
Cualquier carácter se evalúa del p1 al p2
Verdadero porque no importa el orden. VERDAD PQ CONTIENE LA STRING
Write:/’ expresion’.
Case f.
When
Endcase
Chek evalua la expression
While
Do.
Contador=contador+1.
Chek contador LT 10. (en ciclos)
….. no va a ser cuando se cumpla la condicion
Enddo.
FALSO PORQUE SE EVALUA DEL PARAMETRO2 EN EL 1 COMO STRING
**************codigo programa 10b**********
*&---------------------------------------------------------------------**& Report ZPROGRAMA10B_ARV*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*
REPORT ZPROGRAMA10B_ARV.
parameters: var1(10) type c, var2(10) type c, var3(10) type c, texto(20) type c.
data: tam type i, fecha(10) type c, dia(2) type c, mes(2) type c, anio(4) type c, var4(10) type c.
start-of-selection.*****substring y concatenate*****
concatenate sy-datum+6(2) '.' sy-datum+4(2) '.' sy-datum+0(4) into fecha.
*******condense**********
var1 = ' 12345'.condense var1.
******Replace*****tam = strlen( var2 ).replace var2+0(tam) with var3 into texto.condense texto no-gaps.*tam = strlen( var3 ).
*******Split*********split fecha at '.' into dia mes anio.
*****move********move var1 to var4.
write: 'Fecha Sistema: ', sy-datum.write:/ 'Fecha Usuario: ', fecha.write:/ 'Condense: ', var1.write:/ 'Replace: ', 'var2= ',var2, 'var3= ',var3,' texto ',texto.write:/ 'Split: ', dia, 'Mes: ', mes, 'Año: ', anio.write:/ 'Move:', 'var1= ',var1, 'a', 'var4= ',var4.
SE91
PARA ENTRAR A MENSAJES CLASE
CAMBIO DE PÁQUETE DE LOCAL A ASIGNAR PAQUETE
SELECCIONAR OBJETOS LOCALES
PROGRAMAS
BUSCAMOS EL PROGRAMA DAMOS CLICK DERECHO
MODIFICACION DE PAQUETE
*&---------------------------------------------------------------------**& Report ZEJERCICIO11_ARV*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*
REPORT ZEJERCICIO11_ARV NO STANDARD PAGE HEADING.
**************** BLOQUE DE DOCUMENTACION PRINCIPAL ********************** Nombre del Programa : REPORT ZEJERCICIO11_MVG.* Descripcion : EN ESTE PROGRAMA ESTA DESCRITO COMO HACER Y MANDAR LLAMAR INCLUDES,
* SUBRUTINAS Y PROCEDIMIENTOS.* Autor del Programa : MARICELA VALENZUELA GOMEZ* Fecha : 23 DE JULIO 2010* Referencia de Diseno: N.A.* Numero de version : 1.0.************************************************************************* REPORT .************************************************************************* Log de Modificaciones************************************************************************* Fecha Nombre ID de Cambio Nro.Orden Descripcion************************************************************************************************************************************************
* PROGRAMAS INCLUIDOS************************************************************************INCLUDE ZEJERCICIO11_ARV_TOP. " PARA DEFINIR EL INCLUDE, DAR DOBLE CLIC EN LA PALABRA INCLUDEINCLUDE ZEJERCICIO11_ARV_FORMS. " CORTAMOS Y PEGAMOS LA PARTE QUE DEFINE LAS DECLARACIONES Y EN EL OTRO LA DE LAS FORMAS.
* AT SELECTION-SCREEN************************************************************************
************************************************************************* INICIALIZATION************************************************************************
************************************************************************* START-OF-SELECTION************************************************************************START-OF-SELECTION.
SUMA A B C.I_TO_C AC BC CC.PERFORM GET_DATA.PERFORM WRITES.
************************************************************************* END-OF-SELECTION************************************************************************
*&---------------------------------------------------------------------**& Include ZEJERCICIO11_ARV_TOP*&---------------------------------------------------------------------**&---------------------------------------------------------------------**& Include ZEJERCICIO11_MVG_TOP*&---------------------------------------------------------------------*
************************************************************************* TYPE POOLS************************************************************************TYPES: BEGIN OF TY_MARA, MATNR TYPE MATNR, MEINS TYPE MEINS, END OF TY_MARA.************************************************************************* TABLAS************************************************************************TABLES: MARA.************************************************************************* ESTRUCTURAS************************************************************************
************************************************************************* TABLAS INTERNAS************************************************************************
DATA IT_MARA TYPE TY_MARA OCCURS 0 WITH HEADER LINE.
************************************************************************* VARIABLES************************************************************************DATA: A TYPE I VALUE 2, B TYPE I VALUE 3, C TYPE I, AC TYPE C, BC TYPE C, CC TYPE C.************************************************************************* CONSTANTES************************************************************************
************************************************************************* PARAMETERS************************************************************************
************************************************************************* SELECT-OPTION
************************************************************************SELECT-OPTIONS S_MATNR FOR MARA-MATNR.
*&---------------------------------------------------------------------**& Include ZEJERCICIO11_ARV_FORMS*&---------------------------------------------------------------------**&---------------------------------------------------------------------**& Include ZEJERCICIO11_MVG_FORMS*&---------------------------------------------------------------------************************************************************************************************************************************************** FORMS = SUBRUTINAS************************************************************************FORM GET_DATA.
SELECT MATNR MEINS FROM MARA INTO CORRESPONDING FIELDS OF TABLE IT_MARA WHERE MATNR IN S_MATNR.
ENDFORM. "GET_DATA
*&---------------------------------------------------------------------**& Form WRITES*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*FORM WRITES.
WRITE: 'MATERIAL', 20 'UMB'.
LOOP AT IT_MARA.
WRITE: / IT_MARA-MATNR UNDER 'MATERIAL', IT_MARA-MEINS UNDER 'UMB'.
ENDLOOP.
WRITE: / AC, '+', BC, '=', CC.ENDFORM. "WRITES
DEFINE SUMA. "ESTO ES UNA MACRO, NO SABE DE TIPOS DE DATO EL ORDEN EN QUE SE MANDAN LAS VARIABLES ES COMO SABE QUIEN ES 1,2 Y 3 &3 = &1 + &2. END-OF-DEFINITION.
DEFINE I_TO_C. &1 = A. &2 = B. &3 = C. END-OF-DEFINITION.
TABLA CON CABECERA (UN ESPACIO RESEVADO EN MEMORIA)
CABECERA ESPACIO RESERVADO
CABECERA ESPACIO RESERVADO
CABECERA ESPACIO RESERVADO
CABECERA ESPACIO RESERVADO
INSTRUCCIÓN:
LOOP AT IT_MARA INTO WA_MARA (LEER)
MODIFY IT_MARA (MODIFICAR)
TABLA SIN CABECERA (POR MEDIO DE UNA ESTRUTURA DE MANEJA EL ACCESO A LOS DATOS)
INSTRUCCIÓN:
LOOP AT IT_MARA INTO WA_MARA (LEER)
MODIFY WA_MARA TO IT_MARA (MODIFICAR)
DECLARANDO TABLAS CON CABECERA.
FORMA 1: (FORMA PARA PONER LOS TIPOS DE DATOS EN FORMA ESTRUCTURAL)
DATA: BEGIN OF IT_MARA OCCURS 0.
….
END OF IT_MARA
FORMA 2: (DEFINIENDO SOLO LA TABLA CON CABECERA)
DATA: IT_MARA LIKE MARA OCCURS 0 WITH HEADER LINE.
FORMA3: (TABLA CON CEBECERA Y UNA ESTRUTURA PARA DEFINIR LOS TIPOS DE DATOS)
DATA: IT_MARA LIKE TY_MARA OCCURS 0 WITH HEADER LINE.
ANTERIORMENTE DEFINIENDO EL TYPO DE ESTRUCTURA:
TYPE: BEGIN OF TY_MARA,
…..
END OF TY_MARA.
TABLAS SIN CABECERA DECLARACION
<N>: 0 ES EL NUMERO DE REGISTROS QUE PUEDE CONTENER DEPENDIENDO DEL BUFFER. 1 POR EJEMPLO ES DEL REGISTRO 1-100 ETC.
DATA: <ITTAB> TYPE <TIPO> OCCURS <N>.
EJEMPLO EN EL MANUAL
EN LA SINTAXIS DE LA DECLARA LA TABLA INTERNA
TYPE STANDARD TABLEOF = OCCURS 0
PAGINA ENTRE LA 77 Y 78
APPEND PARA AGREGAR REGISTRO A LA TABLA INTERNA
CON CABECERA
APPEND IT_MARA
SIN CABECERA
APPEND WA_MARA TO IT_MARA
BORRA UN SOLO REGISTRO
CON CABECERA
DELETE CAMISA
BORRA EL REGISTRO EN QUE ESTA POSICIONADO
WA = OBLIGATORIA SI ES DEL WORK AREA.
DELETE [TABLE] <ITAB> [FROM WA] [WHERE <COND>].
CON CABECERA MODIFICAR
MODIFY <ITAB>
SIN CABECERA
MODIFY WA_TAB TO IT_TAB
HAY FORMA DE MODIFICAR EL POR MEDIO DEL INDICE.
MODIFY IT_TAB INDEX SY-TABIX FROM WA_TAB.
COLLECT NOS SUMA TODOS LOS VALORES NUMERICOS DENTRO LA TABAL INTERNA
DESCRIBE NOS DICE EL NO DE REGISTROS DE UNA TABLA INTERNA.
SORT NOS ORDENA LA TABLA POR LOS CAMPOS QUE REUQERIMOS
SORT <ITTAB> BY CAMPO1 CAMPO2.
LOOP AT INTERATURA EN LOS REGISTROS
LOOP AT ITAB INTO WA_ITAB.
WRITE WA_IT_ITAB-CAMPO1.
ENDLOOP.
AT SE MUEVE EN LOS REGISTRO
LEER TABLAS
READ TABLE <ITTAB> INTO <VARIABLE>
[ [ WITH KEY <CAMPO1>=<VALOR1>……] ----------SIN CAMPO LLAVE
[ [ WITH TABLE KEY <CAMPO1>=<VALOR1>……] ----------CON CAMPO LLAVE
Se11 para accesar visualizador de tablas y creacion
LUEGO OPCIONES TECNICAS
CAT TAMAÑO 0
DAR CLICK EN REVISADO <> ACTIVO
GUARDAR
DAR CLICK EN LAS LLAVES
LUEGO DETALLES
PARa que no aya problrma s de agregar nuevas llaves y evitar incosistencias de datos para el usuario.
LUEGO activar
Luego checar la referencia de moneda
Esa es para poner la referencia de la moneda
MARA MEINS
CEL DATOS DANIEL
55 18367241
Ofi. 30029650
@gmail.com
Elementos de datos para crearlo ocupamos un dominio.
Se pueden crear de 3 formas.
Dominio o elemental (hereda todo los tipos de los ya existentes)
Instalado (el tipo de dato y longitud)
Referencia (tipo de dato referente a otro tabla)
Subrutina de conversión
Pequeños códigos para hacer tratamientos de datos para mostrar y tratarla los datos
Fecha juliana se37 VER CREAR FUNCIONES
Seleccionar tipo de datos
Los tipos de datos
Entrat al matnr
Ver rutina de conversión
Nos manda a un modulo de funciones damos un click eb la primera opción donde veremos el código de las funciones para conversión.
Si queremos ver la fecha identificar la fecha como viene y luego identificar el dominio
Vemos el input y output
Un dato que no entiende uscar el dominio y vemos el otuput para ver la conversión.
Para entender como sale y asi saberlo.
Dar click en visualizar
Doble clik en subrutina de conversión
CREACION DE DOMINIO
PONER TIPO DE DATOS
LA SUBRUTINA SE USO LA DE MATN1 ENTRADA Y SALIDA DE CARACT. 10
PALOMEAMOS MINUSCULA
RECOMENDABLE USAR CUANDO LO VAMOS A UTILIZAR MAS DE UN 1 RUTINA.
CREANDO ELEMENTO DE DATOS APARTIR DE NUESTRO DOMINIO
NOS REGRESAMOS A LA TABLA PARA ACTUALIZAR
PONEMOS EL DOMINIO EL ELEMENTO DE DATOS NUEVO DEL DOMINIO CREADO
Y DAMOS CLICK EN
SELECCIONAR GRUPO DE AUTORIZACIONES
NO DE IMÁGENES ES EL EL NO. DE VISTA
DAR CLICK EN EL BOTON DE BUSQUEDA NO DE IMÁGENES Y LUEGO NUEVO Y DARA A AQUE GUARDEMOS LA VISTA DE DATOS Y LUEGO IMAGEN TIPO DE ACTUALIZACION.
PONER /OSM30 PARA ABRIR EN UNA NUEVA VENTANA PARA MODIFICAR LOS DATOS
CAMBIAR LA VISTA DE DATOS PARA PODER ACTUALIZAR
ENTRAS CON CODIGO PARA MODIFICAR LOS DATOS PARA LA VISTA DE DATOS CREADA
CLCIK EN ACTUALIZAR
Y DEPENDIENDO DE LA VISTA DE DATOS
SE VERA PARA HACER LA MODIFICACION
para vista de datos
http://www.mediafire.com/?mzmyeyjrozo
bajar mysap mas que nada para aprender sap
AL11
PODEMOS VER LOS DIRECTORIOS DEL SAP
Error de archivo
YA ESTUBO LO DEL ARCHIVO
ASI MANDAR A LLAMAR GUI_DOWNLOAD
LOS TIPOS DE ARCHIVO ASC, BIN Y DAT.
SY-SUBRC RETORNA VALORES SI 0 SI EXISTEN VALORES Y 4 U 8 ERROR.
SELECT * FROM ZTEST WHERE SALARIO GT 100000.
ENDSELECT.
ES OBSOLETO PERO LO PERMITE… O SOLO PARA IR EN UN GRUPO DE DATOS
SELECT SINGLE * FROM TABLA.
SOLO VA POR EL PRIMER REGISTRO
SE GUARDAN LOS RESULTADOS EN VARIABLES CON EL “INTO”
SE16N ES PARA VER EL NOMBRE DE LA TABLA Y VER LOS DATOS.
SELECT SINGLE * INTO CORRESPONDING FIELDS OF STR_MARA “SI ES UNA ESTRUCTURA”
SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_MARA FROM MARA “SI ES UNA TABLA”
CUANDO SE MANEJA TILDE ~ CUANDO SE MANEJA ALIAS.
AS
UP TANTOS REGISTROS COMO QUIERAMOS
BY PADDING BUFFER (LO PERMITE PERO NO DEBEMOS USAR PARA NO TRONAR UNA TABLA)
LIKE PARA USAR UN PATRON
SIEMPRE VAMOS DESARROLLAR EN
DEV
QAR ES CALIDAD
PRO EN PRODUCTIVO ES GRAN CANTIDAD DE DATOS
CUIDADO CON LA FORMA DE PROGRAMAR
SI SON CAMPOS DIFERENTES NO PONER ALIAS PERO SI SON IGUALES PONER EL ALIAS
LEFT OUTER JOIN PONE QUE ESTEN EN LA IZQUIERDA AUN NO ESTEN EN LA DERECHA.
EL CAMPO QUE HACE EL MATCH ES LA D PAG. 116 EN EL ON ES EL CAMPO QUE INDICA HACER EL MATCH
Se37 entrar para crear alv
OAOR PARA
REUSE_ALV_GRID_DISPLAY motrar alv’s
PARA MANDAR LAS VARIABLES A LA FUNCION DEBEN SER DEL MISMO TIPO DE DATOS Y CHECAR EL IMPORT PARA ASI MANDAR LOS DATOS.
DE LAS TABLAS QUE SE VAN A USAR DEL ALV
MARC | MARA | MAKT
MATNR MATNR MKTX
WERKS MEINS MATNR
MTART
BRGEW
NTEGW
/H
ENTRA AL DEBUGIN
F8 TERMINA DEBUGIN
JALAMOS LAS ENTRADAS DEL ALV DANDO DOBLE CLICK EN LA FUNCIONES
ENTRANDO POR EL TYPE DE ESTRUCTURA DE WA DE LA
OAOR
PARA LO DE IMÁGENES
PONER NOMBRE CLAVE OBJETO Y ESA ES LA REFERENCIA PARA LEER LA IMAGEN
MB5
CUANDO UNA ABAPI SE EJECUTE CORRECTAMENTE
VAMOS A LLAMAR A LA BAPI_TRANSACTION_COMMIT
SI SE TRUENA BAPI_TRANSACTION_ROLBACK
A DE ABORT I WARNING
S FULL
At selection-screm ouptu.
Se llena antes de que muestre la pantalla para list box
PARA CREAR TRANSACCIONES
COM SE38 ETC..
CREE LA ZARV
PARA REALIZAR LA ACCION
TRANSACCIONES
SE30 CON PARAMETROS DEFINIDOS
SE93 TRANSACCIONES
SE80 REPOSITORIO DE CODIGO DE ABAP
PARA TRANSACCIONES PARA VISTAS
VERIFICAR LOS VALORES QUE SE LE MANDA.
CREAR TRANSACCION CON VISTA
DAR VALORES DE PARAMETROS
DAR F1 LUEGO CLICK EN INF. TECNICA
LA TRANSACCION SON LAS DE EJECUTAR EL MISMO VISTA
ES UNA LISTA A VARIAS TABLAS RELACIONADAS
EL MISMO PROGRAMA PERO ATRAVES DE UNA VISTA
MARA Y MAKT
REVISAR VISTA DE BASE DE DATOS
SE16N
CREACION DE INDICES
NO HACER VISTA ES MUY CONFLICTIVO
SE80
EL PRIMERO QUE SE EJECUTA ES OUT
AT SELECTION-SCREEN OUTPUT
DESPUES DEL INICIALIZATION. BUSCA SIEMPRE AL PRINCIPIO O AL FINAL Y DESPUES EL OPSELECTION.
ANTES DE QUE SE EJECUTA LA PANTALLA Y SE EJECUTA UNA SOLA VEZ
Opt selección se llama el reporte o alv
El momento se ejecutA CUANDO SE EJECUTA EL RELOJ
START-OF-SELECTION
INICIAL….
END-OF-SELECION ES UN EVENTO AL FINAL DEL REPORTE.
NO PODEMOS DECLARA PARAMETER CON LA PANTALLA DE SELECION DENTRO DE UNOS EVENTOS. TODOS SE DECLARAN AL PRINCIPIO DE TODOS LOS EVENTOS.
AT USER COMA ES CUANDO UN USARIO
EL PICK SON LAS TECLAS DEL SUARIO EN SELECCIÓN
SUBMIT
PARA UN ALV ALL RIGTH BACK
TAMAÑO = DESCRIBE IT_TABLA
EN TAMAÑO NO. DE ENTRADAS EN LA TABLA INTERNA
SY-TFILL = NO DE ENTRADAS DE LA TABLA. SE MODIFICA CADA VEZ QUE HACE UN LOOP.
TYPE-POLS: AGRUPADOR DE TIPOS DE ESTRUCTURAS. VRM.
EN TIPO DE ESTRUCTURA NO METES DATOS.
ESA TIEPE TYPOLS TIENE TODAS LAS VARIABLES PARA LLAMAR UNA FUNCION
C#
Si ocupamos todos los campos de la tabla declarar una tabla interna
DATA: IT_MARA TYPE ESTÁNDAR TABLE OF MARA.
SI QUEREMOS TIPO DE TABLA
TYPES: BEGIN OF IT_MARA OCCURS 0,
MATNR TYPE MATNR,
MEINS TYPE MEINS,
END OF TY-MARA.
LA CABECERA SE DECLARA HASTA QUE DECLARA LA TABLA INTERNA
SELECTION OPCTION EN NECERARIOS DECLARAR TABLES: MARA
SI FUERA ASI DATA: WA_MARA LIKE LIKE LINE OF IT_MARA.
La bc no usar y no pueden crear indices
EJERCICIO
CON MARA
Se41 y se80 estatus bar
Dinpro se genra el botón
Hay una estructura de ambiente que se llama screen lo que vamos hacer en el evento que queramos evaluar el parámetro va a ser
AT SELECTION-SCREEN ON P_1 SE EJECUTA CUANDO LE DEMOS CLIN EN ESE PARAMETRO
IF R_1 CS ‘X’
LOOP AT SCREEN. “VA A RECORRER LA PANTALLA
IF SCREEN-NAME CS ‘P_2’.
SCREEN-OUTPUT = 0. “LO OCULTA
SCREEN-INPUT = 0 “LO DESABILITA O PONE EN GRIS
MODIFY SCREEN.
ENDIF.
ENDLOOP.
SI HACEMOS UN CONSULTA CON DOS PARAMETROS
EN EL MATCH TENEMOS QUE PONER WL WITH KEY NO PEDIDO DE TABALA Y EL O
READ
SUMIT ZXXX SLECTION-SCREEN WITH P_1= ‘ ’.
Y OTROS
LAS BAPIS NOS REGRES AUNA TABLA RETURN NOS DA UN LOG DE QUE SE CREO SATISFACTORIAMENTE.
BAPI TRANSACCION COMIT
PARA LOS CAMBIOS DE QUE ESTA BAPI HAGA LOS CAMPIOS EN EL SISTEMA.
O UN ROLLBACK
SPLIT
FI01
CARGA INICIAL
CONTRASACCION
ZFI_002
BATCH INPUTS
SON GRABACIONES EN LAS CUALES LE VAMOS A MANDAR INFORMACION POREJEMPLO:
ENTRAR A UNA TRANSACCION LE DAMOS GRABACION NUEVA EL NOMBRE DE GRABACION NOS PIDE EL CODIGO LA TRANSACCION SI ES SINCRONO O ASINCRONO.
CON /A SON GRABACIONES SEW SE HACEN GRABACIONES. ASINCRONO: NOSOTROS TENEMOS QUE ENVIAR Y RECIBIR INFORMACION Y HACE VARIAS OPERACIONES. SINCRONO: ES CUANDO SE TIENE QUE EJECUTAR UNO POR UNO.
UNA GRABACION ES QUE SE QUEDE GUARDADO CADA MOVIMIENTO DE LA PANTALLA Y SE VA APARECIENDO LO QUE HACEMOS . NO NODE BEMOS EQUIVOCAR PORQUE SE REFLEJA EN EL CODIGO. KA ES UN ARCHIVO DE TEXTO PLANO.. LOS PROGRAMADORES NO HACEMOS ESTO A NOSTROS NOS INTERESA EL CODIGO QUE SE GENERA DE TODAS LAS TRANSACCIONES GRABADA.
NOS APARECE DESPUES DE TERMINAR LA GRABACION.
LE DAMOS CLIC EN PROGRAMAS EN PROGRAMA NOS VA A MOSTRAR EL CODIGO FUENTE.
EL BOTON DE JUEGO DE DATOS (SE35) ME VA A MANDAR A EJECUTAR EL BATCH Y CUANDO LO HACEMOS CON ARCHIVOS.
PUEDE SER CON UNA TABLA INTERNA Y PUEDE SER CON UN ARCHIVO LOS BATCH.
EN UNA TE PONE LOS DATOS COMO SON . CON IT INTERNA
NOS INTERESA EL CODIGO REPITE YA QUE NOSOTROS AL HACER LOS PROGRAMAS SOLO JALAMOS LOS DATOS CON SOLO CIERTOS DATOS.
LO QUE NOSOTROS VAMOS HACER CON EL CATH INPUT ES IDENTIFICAR LAS PARTES DE LA GABRACION PARA TOMAR CODIGO PARA HACER NUESTROS PROGRAMAS.
CONTENIDOS DE CAMPOS PUEDEN SER :
LEER DEL FICHERO
TOMAR DE LA GABRACION (ESTE DE PREFERENCIA PARA VER LOS DATOS CON VARIABLES)
CONTRASACCION ES CUANDO ONLINE SE MANDA LOS DATOS LOS USUARIO
EL TIPO DE BATH ES UN EJECUTABLE.
SHDB
GRABACION LOCAL PARA LA ALIMENTACION DE DATOS
PAIS: MX
CLAVE DE BANCO: BMARV
FINAN: BANCO MUNDIAL DE ARLEJANDRO
MODOPROCESADMIENTO CHECAR
SHDB PARA HACER GRABACIONES
SM35 EJECUTAR LOS BATCH
AL11 VEMOS EL ARCHIVO
SE36
BASE DE DATOS LOGICAS
UNA VEZ HECHAS LAS BASE DE DATOS LOGICAS
SE REALZIA EL PROGRAMA PARA REALZIAR EL REPORTE.
*&---------------------------------------------------------------------**& Report ZRBDL_ARV*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*
REPORT ZRBDL_ARV.
tables: ztestudiantes, ztprofes, ztnotas, ztprofes_curso, ztcursos.data cont type i VALUE 0.DATA FLAG TYPE C.start-of-selection.FORMAT INTENSIFIED ON COLOR = 5.write: ' NO.',' Estudiante:','Materia: ' , ' Notas: ','Profesor: '.get ztestudiantes.get ztprofes.get ztnotas.get ztprofes_curso.get ztcursos.
ADD 1 TO CONT.if ztnotas-znota gt 20. IF FLAG EQ 'X'. FORMAT INTENSIFIED ON COLOR = 3. write: cont UNDER 'NO.',ztestudiantes-znombre under ' Estudiante:', ztcursos-zmateria under 'Ma
teria: ' , ztnotas-znota under 'Notas: ', ztprofes-zprofe under 'Profesor: '. FLAG = ''. ELSE. FORMAT INTENSIFIED OFF COLOR = 3. write: cont UNDER 'NO.',ztestudiantes-znombre under ' Estudiante:', ztcursos-zmateria under 'Materia: ' , ztnotas-znota under 'Notas: ', ztprofes-zprofe under 'Profesor: '. FLAG = 'X'. ENDIF.
endif.
ZT22 LLER LOS DOWN
CON GET EN EL PROGRAMA SI LO QUITAMOS NO SE IMPRIME LOS DATOS
*&---------------------------------------------------------------------**& Report ZEJERCICIO16_ARV*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*
REPORT ZEJERCICIO16_ARV.
TABLES ZTESTUDIANTES.
SELECT-OPTIONS SL_EST FOR ZTESTUDIANTES-ZID_EST.
TYPE-POOLS: RSDS, RSFS.
DATA: CALLBACK TYPE TABLE OF LDBCB, CALLBACK_WA LIKE LINE OF CALLBACK, SELTAB TYPE TABLE OF RSPARAMS, SELTAB_WA LIKE LINE OF SELTAB, TEXPR TYPE RSDS_TEXPR,
FSEL TYPE RSFS_FIELDS.
*** FORM'S QUE SE EJECUTAN UNA VEZ QUE SE LLAMA LA LDB ***
CALLBACK_WA-LDBNODE = 'ZTESTUDIANTES'.CALLBACK_WA-GET = 'X'.CALLBACK_WA-GET_LATE = 'X'.CALLBACK_WA-CB_PROG = SY-REPID.CALLBACK_WA-CB_FORM = 'CALLBACK_ZTESTUDIANTES'.
APPEND CALLBACK_WA TO CALLBACK.
CLEAR CALLBACK_WA.CALLBACK_WA-LDBNODE = 'ZTNOTAS'.CALLBACK_WA-GET = 'X'.CALLBACK_WA-CB_PROG = SY-REPID.CALLBACK_WA-CB_FORM = 'CALLBACK_ZTNOTAS'.
APPEND CALLBACK_WA TO CALLBACK.
*** S_EST ES EL SELECT-OPTIONS CREADO EN ZLD_EXAMPLE ***
SELTAB_WA-KIND = 'S'.SELTAB_WA-SELNAME = 'S_EST'.
LOOP AT SL_EST. MOVE-CORRESPONDING SL_EST TO SELTAB_WA. APPEND SELTAB_WA TO SELTAB.
ENDLOOP.
*** FUNCION PARA LLAMAR LDB A PARTIR DE LA VERSION 4.5A ***"'ZBDL_ARV'CALL FUNCTION 'LDB_PROCESS' EXPORTING ldbname = 'ZBDL2_JAM' VARIANT = ' ' EXPRESSIONS = TEXPR FIELD_SELECTION = FSEL
* DYN_NODE_TYPES = tables callback = CALLBACK SELECTIONS = SELTAB EXCEPTIONS LDB_NOT_REENTRANT = 1 LDB_INCORRECT = 2 LDB_ALREADY_RUNNING = 3 LDB_ERROR = 4 LDB_SELECTIONS_ERROR = 5 LDB_SELECTIONS_NOT_ACCEPTED = 6 VARIANT_NOT_EXISTENT = 7 VARIANT_OBSOLETE = 8 VARIANT_ERROR = 9 FREE_SELECTIONS_ERROR = 10 CALLBACK_NO_EVENT = 11 CALLBACK_NODE_DUPLICATE = 12 OTHERS = 13 .
IF sy-subrc <> 0. WRITE: 'EXCEPTION WITH SY-SUBRC', SY-SUBRC.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.
FORM CALLBACK_ZTESTUDIANTES USING NAME TYPE LDBN-LDBNODE WA TYPE ZTESTUDIANTES EVT TYPE C CHECK TYPE C. CASE EVT. WHEN 'G'. WRITE: / WA-ZNOMBRE, WA-ZAPE1, WA-ZAPE2. ULINE. WHEN 'L'. ULINE. ENDCASE. ENDFORM.
FORM CALLBACK_ZTNOTAS USING NAME TYPE LDB
N-LDBNODE WA TYPE ZTNOTAS EVT TYPE C CHECK TYPE C. WRITE: / WA-ZNOTA. ENDFORM.
NATURALESA DEL SELECT-OPTION ES DE UNA TABLA INTERNA
ARREGLADO
*&---------------------------------------------------------------------**& Report ZEJERCICIO16_ARV*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*
REPORT ZEJERCICIO16_ARV.
TABLES ZTESTUDIANTES.
SELECT-OPTIONS SL_EST FOR ZTESTUDIANTES-ZID_EST.
TYPE-POOLS: RSDS, RSFS.
DATA: CALLBACK TYPE TABLE OF LDBCB, CALLBACK_WA LIKE LINE OF CALLBACK, SELTAB TYPE TABLE OF RSPARAMS, SELTAB_WA LIKE LINE OF SELTAB, TEXPR TYPE RSDS_TEXPR, FSEL TYPE RSFS_FIELDS.
*** FORM'S QUE SE EJECUTAN UNA VEZ QUE SE LLAMA LA LDB ***
CALLBACK_WA-LDBNODE = 'ZTESTUDIANTES'.CALLBACK_WA-GET = 'X'.*CALLBACK_WA-GET_LATE = 'X'.
CALLBACK_WA-CB_PROG = SY-REPID.CALLBACK_WA-CB_FORM = 'CALLBACK_ZTESTUDIANTES'.
APPEND CALLBACK_WA TO CALLBACK.
CLEAR CALLBACK_WA.CALLBACK_WA-LDBNODE = 'ZTNOTAS'.*CALLBACK_WA-GET = 'X'.CALLBACK_WA-GET_LATE = 'X'.CALLBACK_WA-CB_PROG = SY-REPID.CALLBACK_WA-CB_FORM = 'CALLBACK_ZTNOTAS'.APPEND CALLBACK_WA TO CALLBACK.
CLEAR CALLBACK_WA.CALLBACK_WA-LDBNODE = 'ZTCURSOS'.CALLBACK_WA-GET = 'X'.*CALLBACK_WA-GET_LATE = 'X'.CALLBACK_WA-CB_PROG = SY-REPID.CALLBACK_WA-CB_FORM = 'CALLBACK_ZTCURSOS'.
APPEND CALLBACK_WA TO CALLBACK.
*** S_EST ES EL SELECT-OPTIONS CREADO EN ZLD_EXAMPLE ***
SELTAB_WA-KIND = 'S'.SELTAB_WA-SELNAME = 'S_EST'.
LOOP AT SL_EST. MOVE-CORRESPONDING SL_EST TO SELTAB_WA. APPEND SELTAB_WA TO SELTAB.
ENDLOOP.
*** FUNCION PARA LLAMAR LDB A PARTIR DE LA VERSION 4.5A ***"'ZBDL_ARV'CALL FUNCTION 'LDB_PROCESS' EXPORTING ldbname = 'ZBDL2_JAM' VARIANT = ' ' EXPRESSIONS = TEXPR FIELD_SELECTION = FS
EL* DYN_NODE_TYPES = tables callback = CALLBACK SELECTIONS = SELTAB EXCEPTIONS LDB_NOT_REENTRANT = 1 LDB_INCORRECT = 2 LDB_ALREADY_RUNNING = 3 LDB_ERROR = 4 LDB_SELECTIONS_ERROR = 5 LDB_SELECTIONS_NOT_ACCEPTED = 6 VARIANT_NOT_EXISTENT = 7 VARIANT_OBSOLETE = 8 VARIANT_ERROR = 9 FREE_SELECTIONS_ERROR = 10 CALLBACK_NO_EVENT = 11 CALLBACK_NODE_DUPLICATE = 12 OTHERS = 13 .
IF sy-subrc <> 0. WRITE: 'EXCEPTION WITH SY-SUBRC', SY-SUBRC.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.
FORM CALLBACK_ZTESTUDIANTES USING NAME TYPE LDBN-LDBNODE WA TYPE ZTESTUDIANTES EVT TYPE C CHECK TYPE C. CASE EVT. WHEN 'G'. WRITE: / WA-ZNOMBRE, WA-ZAPE1, WA-ZAPE2. ULINE. WHEN 'L'. ULINE. ENDCASE. ENDFORM.FORM CALLBACK_ZTCURSOS USING NAME TYPE LDBN-
LDBNODE WA TYPE ZTCURSOS EVT TYPE C CHECK TYPE C. WRITE: / WA-ZMATERIA. ENDFORM.
FORM CALLBACK_ZTNOTAS USING NAME TYPE LDBN-LDBNODE WA TYPE ZTNOTAS EVT TYPE C CHECK TYPE C. WRITE: WA-ZNOTA. ENDFORM.
SE80 PARA VER EL CODIGO
Y EL DYMPRO
UNA PANTALLA PUEDE ESTAR ASOCIADA A UN PROGRAMA NO A VARIOS
SAPMZXXXXX <- NOMENCLATURA PARA DYMPROS
LOS CONCEPTOS DE PBO Y PAI
TODOS LOS DYMPROS SON INDEPENDIENTES DE SUS PROCESOS
CUANDO TENEMOS MUCHAS VENTANAS DE DYMPRO ES MEJOR HACER UNOS INCLUDES
APARTE DE TOP Y FORM
OTROS INCLUDE _PBO Y _PAI
PBO : ANTES DE QUE LA PANTALLA ENTRE.
PAI: SE GENERAN LOS BOTONES.
INPUT = AT SLECTION-SCREEN COMO EN LOS REPORT
POH= INVALUE REQUEST REPORT
EL POH ES PARA EJECUTAR AYUDA.
POV=INVALID REQUEST
CREAR DYMPRO
Todos los elementos del dynpro
los campos obligatorios son los de color fuerte
CUANDO VUELVE EL COLOR NORMAL QUIERE DECIR QUE
YA NO TIENE ERRORES Y LO PODEMOS USAR.
CREAR OTRO DYNPRO CON BOTONES DE ANTERIOR Y FINALIZAR
1. CREAR DYNPRO 02002. CREAR MODULSO PAI PBO3. OK_CODE VARIABLE4. BOTONES 25. GUI STATUS6. GUI TITLE
ZT22 ANALIZAR DOWNS
EJECUTAR DESDE LA TRANSACCION
CATH CX_SY_OPEN_SQL_DB (etiquetas)
UTILIZANDO UN AREA DE SUBSCRIM ES UN DE LOS ICONOS DE LA 4 HACIA ARRIBA.
INSERTAMOS ESA AREA LO ACTIVAMOS Y LO LLAMAMOS VENTA.
LO PASAMOS A NUESTRO PROGRAMA. TOP
Selección-screen begin of screen 500 as subscreen.
Selection-options: s_werks for marc-werks.
Selection-screen end of screen 500.
Y declarer la table
En el se manda a llamar lo siguiente
process beforo output.
MODULE STATUS _0100.
Call subscreen: VENTANA including ‘SAPMZDYNPRO_ARV’ ‘0500’.
BADY = AMPLIACION DE CODIGO ESTANDAR
BADY SE PUE EJECUTAR EN N CANTIDAD DE PROGRAMAS (ORIENTADO A UNA CLASE U OBJETOS)
Y USER-EXIT SOLO SE PUEDE USAR EN UN SOLO PROGRAMA. (ORIENTADO A INCLUDES)
NOMAS LA BADY QUE ESTA ACTIVA SE PUEDE UTILIZAR.
HAY VARIAS FORMAS DE ENCOTRAR UN BADY O UN USER-EXIT PERO LA MAS FACIL ES GOOGLE.
LOS USER-EXIT EMPIENSAN CON LA PALABRA EXIT.
APUNTES DE BADY’S
SE19 SE HACEN LAS IMPLEMENTACION DE BADYS
SE VEN SD18 ->BADY
DESVENTAJA DE LAS BADYS ES QUE SOLO SE PUEDEN HACER CON LOS CAMPOS QUE NOS DICE Y ES LA LIMITANTE.
Mrm_udc_distribuible
BADY PARA MIRO
SABER EN QUE MOMENTO SE EJECUTA LA BADY
BREAK-POINT.
PARA VER SI ME FUNCIONA
HASTA QUE LE DE ACTIVAR SE PASA Y SE EJECUTA
1.- IDENTIFICAR LA TRANSACCION VAMOS A IMPLEMENTAR LA BADY (EJEMPLO ESTE CASO ES LA MIRO).
2.- TENIENDO EL NOMBRE DE LA BADY QUE VAMOS A IMPLEMENTAR NOS VAMOS A LA SE19 (ESTE CASO ES LA MRM_UDC_DISTRIBUTE PARA VER EL CODIGO)
NOS VAMOS A METODOS Y PODEMOS VER TODOS LOS DATOS DE ENTRADA Y SALIDA.
3.- YA QUE SABEMOS LA BADY QUE FUNCIONA PARA NOSOTROS.
4.- SE19 SE VA A CREAR LA IMPLEMENTACION.
5.- EN LA IMPLEMENTACION USAR Z_UDC_DISITRIBUTE
NOS VA A DEJAR QUE MODIFIQUEMOS EL METODO.
Y LE PONEMOS UN BREAK-POINT.
PARA VER SI YA SE IMPLEMENTO LA BADY Y VER QUE FUNCIONE DENTRO DE LA TRANSACCION.
BADY TOTALMENTE ORIENTADA A OBJETOS.
EN BADY SE PUEDEN CREAR VARIAS PERO SE VA A UTILIZAR LA QUE ESTA ACTIVA.
PARA VALIDAR.
ES TALACHUDO.
SOLO DEJAR ACTIVA UNA BADY.
CL_EXIT ASI EMPIEZAN LOS METODOS DE LAS BADYS.
ESTE METODO LLAMA A TODAS LAS BADYS
LEGACY SYSTEM MIGRATION WORKBEACH
212 INICIA LSMW
PIDE:
PROJECT
SUBPROYECT
OBJECT
SMEW HICIERON GRABACION DE DATOS MAESTRSO
ALTA DE BANCOS CARGA MASIBA
CON LA OPICION SOURCE FIELD DANDOLE UN CLIC EL MATCH DE LA ESTRUCTURA QUE GRABARON CON LA ESTRUCTURA. APARECE LA ZBANCOS Y SE LE DA DOBLE CLIC
SELECCONAMOS PRIMERO LOS FELDER Y LE DAMOS CLIC EN SOURCE FIELDS Y BUSCAMOS LA QUE AYAMOS SELECCIONADO
Y DESPUES YA QUE LE DIMOS A TODOS CAMPOS LE DAMOS GUARDAR.
TAMBIEN PODEMOS ASIGNARLE UN VALOR
POR EJEMPLO AL PAIS SIEMPRE QUEREMOS QUE SEA MEXICO Y TENEMOS UNA OPCION DE CONSTANTE. DANDO CLICK EN EL BOTON CONSTANT.
DESPUES SE CREA UN ARCHIVO DE EXCEL Y CREAMOS UN ARCHIVO TEXTO DELIMITADO POR TABULACIONES.
MX ARV2 BANCO CURSO FERTINAL
MX SIEMPRE VIVA # 7
CIUDAD NEZA
LA NEGRA
SE SALTA EL PASO DE MAINT FIXED VALUES, TRANSACCIONES USER –DEFINIDES ROUTINES.
LEGACY DATA
LE DAMOS CLIC EN LAGCY DATA Y EN EL LAPICITO
OTRAVEZ EN LEGACY DATA Y LUEGO EN CLIC EN NUEVO
Y NOS ABRE UNA PANTALLA DONDE NOS ABRE UNA OPCION QUE DICE FILE:
LA DAMOS CLIC EN MATCHCOM Y VAMOS A BURCAR EL ARCHIVO QUE GENERAMOS CON EXCEL.
Y LE DAMOS CLICK EN ABRIR.
COPIEN EL NOMBRE DEL ARCHIVO SIN EXTENCION Y LO PONEMOS EN NAME.
QUE CONTIENE EL ARCHIVO
FILE CONTENTSDAMOS EN
DATA FOR ONE SOURCE STRUCTUCTURE
DELIMITER
TABULADOR
FILE STRUCTURE
Field order matches source structure definition (el mismo orden como tenemos la estructura)
FILE TYPE
Record end marker text file
Y LE DAMOS GUARDAR Y HACIA ATRAS
EL PASO DE ASIGNAR FILES NOMAS ENTRAMOS DOBLE EN EL Y LUEGO ESCRIBIR
EN EL LAPICITO Y DESPUES GUARDAR.
NOS QUEDAMOS EN READ DATA
En read ejecutar
Después nos pregunta que registros vamos a leer
Si fuera con cabeceralo leen apartir del 2
Y los que no tienen encabezado lo hacen apartir del 1.
Y después vamos a ver el display read data
Nos regresamos y ejecutamos
O modificamos el archivo o modificamos la estructura.
Ya que salió mal el registro.
Lo mas fácil es modificar el archivo.
Se cambia el orden del archivo conforme a la estructura para volver a darle y en read table.
Debe salir un solo registro.
El paso que sigue es el bath input
Y le damos ejecutar.
Y se genera un bath input se genera
Create batch input y se deja como estaba y después se pasa al
RUN BATCH Y DAMOS EJECUTAR.