Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Smartforms . .

Former Member
0 Likes
425

Hi,

could u tell me how to write a loop in smartforms

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
408

Parameters p_belnr like bkpf-belnr default '0100000236'.

*Get last SA type document posted to build document key

CALL FUNCTION 'NUMBER_GET_NEXT'

EXPORTING

NR_RANGE_NR = '01'

OBJECT = 'RF_BELEG'

QUANTITY = '1'

SUBOBJECT = '4000' "company code

TOYEAR = '2005'

IGNORE_BUFFER = '2005'

IMPORTING

NUMBER = docnum

QUANTITY =

RETURNCODE =

EXCEPTIONS

INTERVAL_NOT_FOUND = 1

NUMBER_RANGE_NOT_INTERN = 2

OBJECT_NOT_FOUND = 3

QUANTITY_IS_0 = 4

QUANTITY_IS_NOT_1 = 5

INTERVAL_OVERFLOW = 6

BUFFER_OVERFLOW = 7

OTHERS = 8

.

IF SY-SUBRC 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

Begin to populate docnument header.

*obj_key contains new document no.

CONCATENATE docnum '4000' sy-datlo(4) INTO doc_header-obj_key.

doc_header-obj_type = 'BKPFF'.

*obj_key_r contains document no. needed to reverse

CONCATENATE p_belnr '4000' sy-datlo(4) INTO doc_header-obj_key_r.

doc_header-obj_sys = 'A1DMD011'.

*doc_header-OBJ_KEY_R = 'AWREF_REV'.

*doc_header-AC_DOC_NO = '8'.

*doc_header-header_txt = 'TEST BOC BAPI POSTING'.

doc_header-comp_code = '4000'.

doc_header-REASON_REV = '02'.

doc_header-pstng_date = '20050517'.

doc_header-FIS_PERIOD = '05'.

All tables filled - now call BAPI.

CALL FUNCTION 'BAPI_ACC_GL_POSTING_REV_POST'

EXPORTING

REVERSAL = doc_header

IMPORTING

OBJ_TYPE = doc_header-obj_type

OBJ_KEY = doc_header-obj_key

OBJ_SYS = doc_header-obj_sys

TABLES

RETURN = return

.

LOOP AT return WHERE type = 'E'.

EXIT.

ENDLOOP.

IF sy-subrc EQ 0.

WRITE: / 'BAPI call failed - debug and fix!'.

LOOP AT return.

WRITE: / .

WRITE:

return-TYPE,

'|',

return-ID,

'|',

return-NUMBER,

'|',

return-MESSAGE.

ENDLOOP.

ELSE.

LOOP AT return.

WRITE: / .

WRITE:

return-TYPE,

'|',

return-ID,

'|',

return-NUMBER,

'|',

return-MESSAGE.

ENDLOOP.

CLEAR return.

REFRESH return.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'

IMPORTING

return = return.

WRITE: / 'BAPI call worked!!'.

WRITE: / doc_header-obj_key, ' posted'.

ENDIF.

4 REPLIES 4
Read only

Former Member
0 Likes
408

hi ,

open the smart form and right click on the right window >create->flow logic-->loop.

then u can loop a table or template below it.

rewards ,

venkat.

Read only

Former Member
0 Likes
408

Wht's the purpose of smartforms ?

Edited by: ekomkar ekomkar on Mar 8, 2008 9:43 AM

Read only

Former Member
0 Likes
409

Parameters p_belnr like bkpf-belnr default '0100000236'.

*Get last SA type document posted to build document key

CALL FUNCTION 'NUMBER_GET_NEXT'

EXPORTING

NR_RANGE_NR = '01'

OBJECT = 'RF_BELEG'

QUANTITY = '1'

SUBOBJECT = '4000' "company code

TOYEAR = '2005'

IGNORE_BUFFER = '2005'

IMPORTING

NUMBER = docnum

QUANTITY =

RETURNCODE =

EXCEPTIONS

INTERVAL_NOT_FOUND = 1

NUMBER_RANGE_NOT_INTERN = 2

OBJECT_NOT_FOUND = 3

QUANTITY_IS_0 = 4

QUANTITY_IS_NOT_1 = 5

INTERVAL_OVERFLOW = 6

BUFFER_OVERFLOW = 7

OTHERS = 8

.

IF SY-SUBRC 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

Begin to populate docnument header.

*obj_key contains new document no.

CONCATENATE docnum '4000' sy-datlo(4) INTO doc_header-obj_key.

doc_header-obj_type = 'BKPFF'.

*obj_key_r contains document no. needed to reverse

CONCATENATE p_belnr '4000' sy-datlo(4) INTO doc_header-obj_key_r.

doc_header-obj_sys = 'A1DMD011'.

*doc_header-OBJ_KEY_R = 'AWREF_REV'.

*doc_header-AC_DOC_NO = '8'.

*doc_header-header_txt = 'TEST BOC BAPI POSTING'.

doc_header-comp_code = '4000'.

doc_header-REASON_REV = '02'.

doc_header-pstng_date = '20050517'.

doc_header-FIS_PERIOD = '05'.

All tables filled - now call BAPI.

CALL FUNCTION 'BAPI_ACC_GL_POSTING_REV_POST'

EXPORTING

REVERSAL = doc_header

IMPORTING

OBJ_TYPE = doc_header-obj_type

OBJ_KEY = doc_header-obj_key

OBJ_SYS = doc_header-obj_sys

TABLES

RETURN = return

.

LOOP AT return WHERE type = 'E'.

EXIT.

ENDLOOP.

IF sy-subrc EQ 0.

WRITE: / 'BAPI call failed - debug and fix!'.

LOOP AT return.

WRITE: / .

WRITE:

return-TYPE,

'|',

return-ID,

'|',

return-NUMBER,

'|',

return-MESSAGE.

ENDLOOP.

ELSE.

LOOP AT return.

WRITE: / .

WRITE:

return-TYPE,

'|',

return-ID,

'|',

return-NUMBER,

'|',

return-MESSAGE.

ENDLOOP.

CLEAR return.

REFRESH return.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'

IMPORTING

return = return.

WRITE: / 'BAPI call worked!!'.

WRITE: / doc_header-obj_key, ' posted'.

ENDIF.

Read only

Former Member
0 Likes
408

Hi,

After writing the select query u wil get the data in to the internal table..After that in which window u want to display those records , create loop..

(right click on that window>create>flowlogic-->loop)

in that one u have to specify ITAB into WA in the DATA tab.

in conditions tab u have to specify the condition....

Ex. loop at itab into wa where vbeln = '2000'.

endloop.

below that one u have to create text nodes in that one give ur field names like WA-VBELN, WA-POSNR..

Thanks and Regards,

Surya