Código ABAP de muestra para el procesamiento del estado del usuario de SAP CRM

El código fuente es el siguiente:

*&---------------------------------------------------------------------*
*& Report ZSTATUS_INITIAL_LOAD
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zstatus_initial_load.

TYPES:
  BEGIN OF ty_sel_tab,
    sign   TYPE ddsign,
    option TYPE ddoption,
    low    TYPE string,
    high   TYPE string,
  END OF ty_sel_tab .
TYPES:
  tt_sel_tab TYPE STANDARD TABLE OF ty_sel_tab .

DATA: lt_tj30        TYPE STANDARD TABLE OF tj30,
      lv_valid_found TYPE abap_bool,
      lt_option      TYPE tt_sel_tab,
      lt_table       TYPE STANDARD TABLE OF zorder_guid.

SELECT stsma stonr INTO CORRESPONDING FIELDS OF TABLE lt_tj30 FROM tj30.

LOOP AT lt_tj30 ASSIGNING FIELD-SYMBOL(<tj30>).
  AT NEW stsma.
    lv_valid_found = abap_false.
  ENDAT.

  IF <tj30>-stonr IS NOT INITIAL.
    lv_valid_found = abap_true.
  ENDIF.

  AT END OF stsma.
    IF lv_valid_found = abap_true.
      DATA(ls_option) = VALUE ty_sel_tab( sign = 'I' option = 'EQ' low = <tj30>-stsma ).
      APPEND ls_option TO lt_option.
    ENDIF.
  ENDAT.

ENDLOOP.

SELECT guid INTO CORRESPONDING FIELDS OF TABLE lt_table FROM crmd_orderadm_h AS a INNER JOIN crm_jsto AS b
   ON a~guid = b~objnr WHERE b~stsma IN lt_option.

DELETE FROM zorder_guid.
INSERT zorder_guid FROM TABLE lt_table.
COMMIT WORK AND WAIT.
WRITE: / 'table inserted'.
BREAK-POINT.

La función principal de este programa ABAP es recuperar datos de dos tablas de datos de SAP CRM e insertar datos que cumplan condiciones específicas en una tabla de datos personalizada. El programa también incluye cierta lógica de control para seleccionar datos que cumplan con las condiciones y realizar operaciones de envío.

Permítanme explicarles en detalle qué hace este programa y brindarles un ejemplo:

  1. El programa comienza :

    • REPORT zstatus_initial_load.: Esta línea especifica el nombre del programa.
  2. Definición de tipo :

    • Una vez iniciado el programa, se definen dos estructuras de datos (TIPOS). El primero se ty_sel_tabutiliza para almacenar información sobre las condiciones de selección de la consulta, incluida la firma (signo), la opción (opción), el límite inferior (bajo) y el límite superior (alto). El segundo es tt_sel_tab, es ty_sel_tabun tipo de tabla estándar.
  3. Declaración de datos :

    • DATALas declaraciones se utilizan para declarar varias tablas de datos y variables, incluidas lt_tj30, y .lv_valid_foundlt_optionlt_table
  4. Consulta de datos :

    • SELECTLa declaración tj30selecciona datos de una tabla y almacena los resultados en lt_tj30la tabla.
  5. Procesamiento de bucle :

    • Utilice LOOPla declaración para recorrer lt_tj30los datos de la tabla. En cada iteración, utilice AT NEW stsmay AT END OF stsmacontrole la lógica para realizar determinadas operaciones.
  6. Verificación de condiciones :

    • En el bucle, el programa comprueba <tj30>-stonrsi está vacío. Si no está vacío, se establece lv_valid_founden verdadero ( abap_true).
  7. Filtrado de datos :

    • Dentro de AT END OF stsmala lógica de control, si lv_valid_foundes verdadero, el programa crea una condición de selección que coincide con los criterios especificados ls_optiony luego la agrega a lt_optionla tabla.
  8. Segunda consulta de datos :

    • Una vez finalizado el ciclo, el programa ejecuta la segunda SELECTdeclaración, selecciona datos de crmd_orderadm_hla tabla y crm_jstola tabla y almacena el resultado en lt_tablela tabla. Esta consulta utiliza los criterios de selección creados anteriormente lt_option.
  9. Operaciones de datos :

    • DELETE FROM zorder_guid.: borre zorder_guidla tabla de datos personalizada denominada.

    • INSERT zorder_guid FROM TABLE lt_table.: lt_tableInserta datos de la tabla en zorder_guidla tabla.

    • COMMIT WORK AND WAIT.: confirma la transacción de la base de datos.

  10. Salidas e interrupciones :

    • WRITE: / 'table inserted'.: Muestra un mensaje de texto en la pantalla indicando que los datos han sido insertados.

    • BREAK-POINT.: Inserte puntos de interrupción para la depuración durante la ejecución del programa.

Ahora, usemos un ejemplo para ilustrar lo que hace el programa:

Suponga que administra los datos de los pedidos de los clientes en un sistema SAP CRM. tj30La tabla contiene información sobre el estado del pedido crmd_orderadm_hy las tablas y crm_jstocontienen detalles del pedido. Desea tj30seleccionar estados de pedidos de una tabla que coincida con ciertos criterios e insertar los detalles de esos pedidos en una tabla personalizada zorder_guid.

Por ejemplo, desea seleccionar todos los pedidos con un estado de pedido "Aprobado". Una vez que se ejecuta el programa, recorre tj30la tabla, busca todos los pedidos con estado "Aprobado" e inserta sus detalles en zorder_guidla tabla. Finalmente aparecerá en pantalla el mensaje 'tabla insertada' indicando que la operación ha finalizado.

Este es un ejemplo simple de cómo un programa puede seleccionar datos de una tabla e insertarlos en otra tabla según los criterios de selección. En aplicaciones reales, las condiciones de selección y las tablas de datos del programa se pueden modificar de acuerdo con las necesidades comerciales específicas para lograr diferentes operaciones de procesamiento de datos.

Supongo que te gusta

Origin blog.csdn.net/i042416/article/details/132861482
Recomendado
Clasificación