Skip to content

Instantly share code, notes, and snippets.

Created December 3, 2016 12:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/b757f9cf342ae830019d734409e0fb79 to your computer and use it in GitHub Desktop.
Save anonymous/b757f9cf342ae830019d734409e0fb79 to your computer and use it in GitHub Desktop.
class /FWW/CL_XT_NAST_PROTOCOL_VN definition
public
inheriting from /FWW/CL_OBJECT
final
create private .
public section.
*"* public components of class /FWW/CL_XT_NAST_PROTOCOL_VN
*"* do not include other source files here!!!
class-methods GET_INSTANCE
returning
value(RO_INSTANCE) type ref to /FWW/CL_XT_NAST_PROTOCOL_VN .
methods IS_SCREEN_DISPLAY_ON
returning
value(RF_DISPLAY) type /FWW/BOOL .
methods DISPLAY
importing
!IS_KALSM type KALSM_D
!IS_NAST type NAST .
methods DISPLAY_ON_ERROR
importing
!IS_KALSM type KALSM_D
!IS_NAST type NAST .
methods SETUP
importing
!I_KAPPL type NA_KAPPL
!I_OBJKEY type NA_OBJKEY
!I_KSCHL type NA_KSCHL
!IF_QUICK_PREVIEW type /FWW/BOOL
!IF_QUICK_PREVIEW_OPT type /FWW/BOOL .
protected section.
*"* protected components of class /FWW/CL_XT_NAST_PROTOCOL_VN
*"* do not include other source files here!!!
private section.
*"* private components of class /FWW/CL_XT_NAST_PROTOCOL_VN
*"* do not include other source files here!!!
class-data SO_INSTANCE type ref to /FWW/CL_XT_NAST_PROTOCOL_VN .
data MF_DISPLAY type /FWW/BOOL .
methods SET_SCREEN_DISPLAY_OFF .
methods SET_SCREEN_DISPLAY_ON .
methods GET_UNSTORED_NAST
returning
value(RT_MSGPROT) type TCMFMSG .
methods HAS_ERRORS
returning
value(RF_ERROR) type /FWW/BOOL .
methods HAS_MESSAGES
returning
value(RF_MESSAGES) type /FWW/BOOL .
methods SETUP_KAPPL_V3
importing
!I_KAPPL type NA_KAPPL
!I_OBJKEY type NA_OBJKEY
!I_KSCHL type NA_KSCHL
!IF_QUICK_PREVIEW type /FWW/BOOL
!IF_QUICK_PREVIEW_OPT type /FWW/BOOL .
methods SETUP_KAPPL
importing
!I_KAPPL type NA_KAPPL
!I_OBJKEY type NA_OBJKEY
!I_KSCHL type NA_KSCHL
!IF_QUICK_PREVIEW type /FWW/BOOL
!IF_QUICK_PREVIEW_OPT type /FWW/BOOL .
ENDCLASS.
CLASS /FWW/CL_XT_NAST_PROTOCOL_VN IMPLEMENTATION.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method /FWW/CL_XT_NAST_PROTOCOL_VN->DISPLAY
* +-------------------------------------------------------------------------------------------------+
* | [--->] IS_KALSM TYPE KALSM_D
* | [--->] IS_NAST TYPE NAST
* +--------------------------------------------------------------------------------------</SIGNATURE>
method DISPLAY.
IF me->is_screen_display_on( ) IS NOT INITIAL AND
me->has_messages( ) IS NOT INITIAL .
IF me->get_unstored_nast( ) IS NOT INITIAL .
CALL FUNCTION 'WFMC_PROTOCOL_GET_UNSTORED' .
ENDIF .
CALL FUNCTION 'WFMC_PROTOCOL_SHOW'
EXPORTING
cps_kalsm = is_kalsm
cps_nast = is_nast.
endif .
endmethod.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method /FWW/CL_XT_NAST_PROTOCOL_VN->DISPLAY_ON_ERROR
* +-------------------------------------------------------------------------------------------------+
* | [--->] IS_KALSM TYPE KALSM_D
* | [--->] IS_NAST TYPE NAST
* +--------------------------------------------------------------------------------------</SIGNATURE>
method DISPLAY_ON_ERROR.
if me->has_errors( ) is not INITIAL .
me->display(
EXPORTING
is_kalsm = is_kalsm "Schema (Preisfindung, Nachrichten, Kontenfindung, ...)
is_nast = is_nast " Nachrichtenstatus
).
endif .
endmethod.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Static Public Method /FWW/CL_XT_NAST_PROTOCOL_VN=>GET_INSTANCE
* +-------------------------------------------------------------------------------------------------+
* | [<-()] RO_INSTANCE TYPE REF TO /FWW/CL_XT_NAST_PROTOCOL_VN
* +--------------------------------------------------------------------------------------</SIGNATURE>
method GET_INSTANCE.
if so_instance is INITIAL .
create object so_instance .
endif .
ro_instance = so_instance .
endmethod.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Private Method /FWW/CL_XT_NAST_PROTOCOL_VN->GET_UNSTORED_NAST
* +-------------------------------------------------------------------------------------------------+
* | [<-()] RT_MSGPROT TYPE TCMFMSG
* +--------------------------------------------------------------------------------------</SIGNATURE>
method GET_UNSTORED_NAST.
REFRESH rt_msgprot .
call FUNCTION 'CM_F_MESSAGES_GET'
TABLES
e_msgprot = rt_msgprot " Tabelle aller gesammelten Meldungen
EXCEPTIONS
not_active = 1
others = 2 .
IF sy-subrc <> 0.
assert 1 = 2 . "Kann nur ein Programmfehler sein
ENDIF.
endmethod.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Private Method /FWW/CL_XT_NAST_PROTOCOL_VN->HAS_ERRORS
* +-------------------------------------------------------------------------------------------------+
* | [<-()] RF_ERROR TYPE /FWW/BOOL
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD has_errors.
DATA: lt_usntored_nast TYPE tcmfmsg .
CLEAR rf_error .
lt_usntored_nast = me->get_unstored_nast( ) .
LOOP AT lt_usntored_nast TRANSPORTING NO FIELDS
WHERE
msgty CA 'AXE' .
rf_error = /fww/if_bool=>c_true .
EXIT .
ENDLOOP .
ENDMETHOD.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Private Method /FWW/CL_XT_NAST_PROTOCOL_VN->HAS_MESSAGES
* +-------------------------------------------------------------------------------------------------+
* | [<-()] RF_MESSAGES TYPE /FWW/BOOL
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD has_messages.
CLEAR rf_messages .
IF me->get_unstored_nast( ) IS NOT INITIAL .
rf_messages = /fww/if_bool=>c_true .
ENDIF .
ENDMETHOD.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method /FWW/CL_XT_NAST_PROTOCOL_VN->IS_SCREEN_DISPLAY_ON
* +-------------------------------------------------------------------------------------------------+
* | [<-()] RF_DISPLAY TYPE /FWW/BOOL
* +--------------------------------------------------------------------------------------</SIGNATURE>
method IS_SCREEN_DISPLAY_ON.
rf_display = me->mf_display .
endmethod.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method /FWW/CL_XT_NAST_PROTOCOL_VN->SETUP
* +-------------------------------------------------------------------------------------------------+
* | [--->] I_KAPPL TYPE NA_KAPPL
* | [--->] I_OBJKEY TYPE NA_OBJKEY
* | [--->] I_KSCHL TYPE NA_KSCHL
* | [--->] IF_QUICK_PREVIEW TYPE /FWW/BOOL
* | [--->] IF_QUICK_PREVIEW_OPT TYPE /FWW/BOOL
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD setup.
IF sy-batch EQ /fww/if_bool=>c_true .
me->set_screen_display_off( ).
ELSE.
me->setup_kappl(
EXPORTING
i_kappl = i_kappl
i_objkey = i_objkey
i_kschl = i_kschl
if_quick_preview = if_quick_preview
if_quick_preview_opt = if_quick_preview_opt
).
ENDIF.
ENDMETHOD.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Private Method /FWW/CL_XT_NAST_PROTOCOL_VN->SETUP_KAPPL
* +-------------------------------------------------------------------------------------------------+
* | [--->] I_KAPPL TYPE NA_KAPPL
* | [--->] I_OBJKEY TYPE NA_OBJKEY
* | [--->] I_KSCHL TYPE NA_KSCHL
* | [--->] IF_QUICK_PREVIEW TYPE /FWW/BOOL
* | [--->] IF_QUICK_PREVIEW_OPT TYPE /FWW/BOOL
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD setup_kappl.
CASE i_kappl .
WHEN 'V3' . "SD Invoice
me->setup_kappl_v3(
EXPORTING
i_kappl = i_kappl " Applikation für Nachrichtenkonditionen
i_objkey = i_objkey " Objektschlüssel
i_kschl = i_kschl " Nachrichtenart
if_quick_preview = if_quick_preview " Boolean: true = 'X', false = ' '
if_quick_preview_opt = if_quick_preview_opt " Boolean: true = 'X', false = ' '
).
WHEN OTHERS .
me->set_screen_display_off( ).
ENDCASE .
ENDMETHOD.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Private Method /FWW/CL_XT_NAST_PROTOCOL_VN->SETUP_KAPPL_V3
* +-------------------------------------------------------------------------------------------------+
* | [--->] I_KAPPL TYPE NA_KAPPL
* | [--->] I_OBJKEY TYPE NA_OBJKEY
* | [--->] I_KSCHL TYPE NA_KSCHL
* | [--->] IF_QUICK_PREVIEW TYPE /FWW/BOOL
* | [--->] IF_QUICK_PREVIEW_OPT TYPE /FWW/BOOL
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD setup_kappl_v3.
IF if_quick_preview IS INITIAL .
me->set_screen_display_on( ) .
ELSE .
me->set_screen_display_off( ) .
ENDIF .
ENDMETHOD.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Private Method /FWW/CL_XT_NAST_PROTOCOL_VN->SET_SCREEN_DISPLAY_OFF
* +-------------------------------------------------------------------------------------------------+
* +--------------------------------------------------------------------------------------</SIGNATURE>
method SET_SCREEN_DISPLAY_OFF.
clear mf_display .
endmethod.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Private Method /FWW/CL_XT_NAST_PROTOCOL_VN->SET_SCREEN_DISPLAY_ON
* +-------------------------------------------------------------------------------------------------+
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD set_screen_display_on.
mf_display = /fww/if_bool=>c_true .
ENDMETHOD.
ENDCLASS.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment