Extracting Order number and Description is pretty straight forward when you use the standard datasource 0COORDER_TEXT
provided by the content.
What if you need to include the “long text” which sits behind the document icon?
For that we make use of the functionmodul READ_TEXT in CMOD.
You have two options either you extend the standard datasource 0COORDER_ATTR or opt for an additional datasource. In this
example we use ZBW_COORDER_ATTR as additional datasource.
We only needed english and if it doesn't exist try german. In the end we map it to our txtlg. Unfortunately you will be restricted to 60 CHAR.
Detail on READ_TEXT
For Order Description we need LTXT and the Object AUFK.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = '100'
ID = 'LTXT'
LANGUAGE = l_text_langu
NAME = l_object_name
OBJECT = 'AUFK'
In the end we fill l_object_name with the order number. ( l_object_name = <fs_zbw_coorder_attr>-AUFNR.)
Submitting those parameters delivers you the "Additional TEXT"
Putting it all in CMOD:
-----------------------------------------------------------------------------------
WHEN 'ZBW_COORDER_ATTR'.
LOOP AT i_t_data ASSIGNING <fs_zbw_coorder_attr>.
** derive order description, max 560 chars, if LTEXT = X we take always the first line only, the others are history
IF <fs_zbw_coorder_attr>-LTEXT = RS_C_TRUE.
* call function module to read the order text
CLEAR lt_text_lines.
l_text_langu = 'E'. " English default
l_object_name = <fs_zbw_coorder_attr>-AUFNR.
DO 2 TIMES. "first english, then german
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = '100'
ID = 'LTXT'
LANGUAGE = l_text_langu
NAME = l_object_name
OBJECT = 'AUFK'
* IMPORTING
* HEADER = HTEXT
TABLES
LINES = lt_text_lines
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
IF SY-SUBRC = 0.
EXIT.
ENDIF.
l_text_langu = 'D'. " set language to german for second try
ENDDO.
IF NOT lt_text_lines IS INITIAL.
READ TABLE lt_text_lines INTO lr_text_lines INDEX 1.
<fs_zbw_coorder_attr>-txtlg = lr_text_lines-TDLINE(60).
ENDIF.
ENDIF.
ENDCASE.
-----------------------------------------------------------------------------------
That's it map your datasource to 0coorder with an additonal infoobject with holds the long text and you are done..
Should you want to extract more than 60 Char you can follow this blog.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
5 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 | |
3 | |
3 | |
3 |