• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
FORMACIÓN SAP

Cómo mejorar los servicios de objetos genéricos de SAP GOS, SGOSATTR y SGOSCUST

By s4pcademy 


Requisito de negocio

Tuve la oportunidad de mejorar el servicio de correo electrónico de GOS a partir de mi sugerencia de utilizar la funcionalidad de GOS ya activada en lugar de crear un nuevo objeto.

GOS se ha activado en muchas transacciones de SAP en mi sistema, pero solo es necesario mejorar el código T específico. El punto de mejora del requisito fue «Enviar» correo electrónico -> «Enviar objeto con nota» en la transacción del documento VIM DP.

Buscando el nodo de GOS en SGOSATTR.

SO_SENDOBJ es un subnodo de SO_SENDSERV. Por lo tanto, debe reemplazar la clase ABAP CL_GOS_SRV_SEND_OBJECT con una clase personalizada

Asigne una clase personalizada en la tabla SGOSCUST

Cree una clase personalizada heredada de la clase estándar CL_GOS_SRV_SEND_OBJECT o de la superclase CL_GOS_SERVICE de CL_GOS_SRV_SEND_OBJECT.

Redefina el método ‘EXECUTE’ de CL_GOS_SERVICE en la clase de cliente recién creada que se asigna a la tabla img anterior.

En mi caso, elijo el objeto BOR con una variable global gs_lporb–tipoid

Ejemplo: Orden de compra «BUS2012»

gs_lporb tiene campo INSTID -> Número de documento, TYPEID -> Nombre BOR, CATID -> Indicador BO «BO». Entonces, solo BOR específico llamará a mi mejora; de lo contrario, llame a las lógicas estándar súper->ejecutar( ) .

Cree lógicas personalizadas

Asunto y mensaje predeterminados personalizados, «Cláusula confidencial» se agregaron como parte de la mejora para mi caso.

**
    DATA:
      lt_text     TYPE soli_tab,
      lp_subject  TYPE so_obj_des,
      lp_line     TYPE soli,
      lp_oid      TYPE os_guid,
      ls_object   TYPE borident,
      lp_mess(80) TYPE c,
      lp_errmess  TYPE string.

    TRY.
* Set object info for link
        ls_object-objtype =  gs_lporb-typeid.
        ls_object-objkey  =  gs_lporb-instid.

* Set mail subject
        lp_subject = TEXT-101 && gp_def_attrib.

* Add confidential Clause
        DO 6 TIMES.
          APPEND  INITIAL LINE TO lt_text.
        ENDDO.
        APPEND  'CONFIDENTIAL CLAUSE' TO lt_text.
        DATA(lv_cc) = cl_wd_utilities=>get_otr_text_by_alias( 
                      zif_vim_email_service~gc_confidential_clause ).
        lt_text = CORRESPONDING #( BASE ( lt_text ) cl_bcs_convert=>string_to_soli( lv_cc ) ).

* Customer enhancement for VIM
        lp_oid = me->send_obj(
                  EXPORTING
                    is_object             = ls_object
                    ip_subject            = lp_subject
                    it_note               = lt_text
                    ip_link               = 'X'
                                     ).

        lp_errmess = lp_mess.
        MESSAGE lp_errmess TYPE 'S'.
        IF lp_oid IS INITIAL.
          RAISE execution_failed.
        ELSE.
          MESSAGE s051(sgos_msg).
          RAISE EVENT service_succeeded
            EXPORTING eo_service = me.
        ENDIF.
      CATCH cx_bcs.
        RAISE execution_failed.
    ENDTRY.




Prueba de unidad

Asunto predeterminado, mensaje predefinido y destinatarios predeterminados completados por la mejora

y el documento de la factura se adjunta como un archivo PDF que no es compatible con el estándar SAP

Extensibilidad

Puede agregar funciones personalizadas con las funciones de GOS (Servicio de objetos genéricos) estándar de SAP, como agregar notas, tareas de flujo de trabajo y enviar correos electrónicos con esta mejora simple.

Por ejemplo, publicar artículos de Twitter o mensajes de redes sociales, leer/escribir documentos de servidores externos, llamar a la API de proveedores de servicios externos, etc.




Migración dirigida por socios: Rise with SAP: proceso paso a paso
Previo
SAP-EWM/Especificación de embalaje para dividir la tarea de recolección OBD en cantidad de palets y cantidad de cajas
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.