Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8594

Re: How to merge all screens into single screen

$
0
0

Basic GuiXT comes native with every installation of SAP.   You can see this when you logon to sap.

 

Customize Local Layout (Button - Alt F12) -> Activate GuiXT

 

This version of GuiXT however only makes it possible to hide screen elements (and things like that.  Condensing multiple screens into one screen, requires advanced functionality not supported in this version.  You have to buy (somewhat pricey) licenses for that from Synactive Inc.

 

http://www.synactive.com/www_e/produkte.html

 

Here is an example of a script that we are currently using:

 

// Created on 11/17/2009
// Created by MS
Parameter l_scrn
set V[z_vbo2_scr] "&U[l_scrn]" // storing the value of the local parameter into a global variable

if not V[z_vbo2_dcn_amt]       // making Deduction Amount required    set V[z_vbo2_dcn_tmp] "1"    set V[z_vbo2_scr]     ""    return "E:Please enter the deduction amount" "-statusline"
endif

if not V[z_vbo2_doc_txt]       // making Document Text required    set V[z_vbo2_doc_tmp] "1"    set V[z_vbo2_scr]     ""    return "E:Please enter a document text" "-statusline"
endif

if not V[z_vbo2_chckno]        // making check number required    set V[z_vbo2_doc_tmp] "1"    set V[z_vbo2_scr]     ""    return "E:Please enter a check number" "-statusline"
endif

if V[z_vbo2_transpayr_chck=X] and not V[z_vbo2_tranpayr]
    set V[z_vbo2_doc_tmp] "1"    set V[z_vbo2_scr]     ""    return "E: Transfer Payer is checked. Please enter an Alternate Payer" "-statusline"
endif

// Change Rebate Agreement
Screen SAPMV13A.0401
    set V[z_vbo2_agmtn]   "&F[Agreement]"   // read the Agreement number    Enter

// Information
Screen SAPMSDYP.0010
    Enter

// Change Cust/ Group Rebate  : Overview Agreement
Screen SAPMV13A.0410    title "Processing VBO2 - Please Wait ..."    set V[z_vbo2_rebrecpt]        "&F[Rebate recipient]"      // Rebate recipient for this agreement    set V[z_vbo2_tranpayr]        "&V[z_vbo2_tranpayr]"       // Read the actual value of the variable    set V[z_vbo2_transpayr_chck]  "&V[z_vbo2_transpayr_chck]" // Read the value of the checkbox    set V[z_vbo2_tranpayr_hold]   "&V[z_vbo2_tranpayr]"
//    set V[z_vbo2_invoice]         "&V[z_vbo2_invoice]"    set V[z_vbo2_invoice] ""    if V[z_vbo2_tranpayr] and V[z_vbo2_transpayr_chck=X]        set V[z_rebate_recpt]    "&V[z_vbo2_rebrecpt]"        set V[z_alt_payer]       ""    else        if V[z_vbo2_tranpayr] and not V[z_vbo2_transpayr_chck=X]            set V[z_alt_payer]       "&V[z_vbo2_tranpayr]"            set V[z_rebate_recpt]    ""        endif    endif    if not V[z_vbo2_tranpayr]        set V[z_vb02_tmp_cust] "&V[z_vbo2_rebrecpt]"  // base case    else        set V[z_vb02_tmp_cust] "&V[z_vbo2_tranpayr]"  // transfer case and alt payer case    endif

// Setting up for RFC calls

// RFC to return document number and document count for non invoice related deducts
    set V[zeros]    "0000000000"        // 10 zeros for padding    set V[cust_len] "&V[z_vb02_tmp_cust]" "-stringlength"    // how many digits    set V[cust_len] "10" - "&V[cust_len]" // Zeros required    set V[z_vb02_tmp_cust] "&V[zeros](1-&[cust_len])&V[z_vb02_tmp_cust]" // Padded material number    call "Z_ZGXT_rfC_REF2DOC" in.CUSTNR="&V[z_vb02_tmp_cust]" in.REFNR="&V[z_vbo2_chckno]"  out.DOCNO="z_docu_num" Out.CNTNR="z_docu_count"    set V[z_vbo2_docu_count]  "&V[z_docu_count]"    set V[z_vbo2_docu_count]  "&V[z_vbo2_docu_count]" * "1"    set V[z_vbo2_docu_num]    "&V[z_docu_num]"

//    if V[z_vbo2_docu_count>1]      // checks if the document number is greater than 1
//        set V[z_vbo2_scr]   ""
//        message "E: Must Process Manually" "-statusline"
//        enter "/nVBO2"
//        goto SCRIPT_END
//    endif    if not V[z_vbo2_docu_num]      // based on what comes back from function module        set V[z_vbo2_scr]   ""        message "E: Invalid Check Number for Agreement &F[Agreement]" "-statusline"        enter "/nVBO2"        goto SCRIPT_END    endif

label VBO2_PAY
    Enter "/24"          // Pay pushbutton vbo2

// Change Cust/ Group Rebate 1524 : Overview Conditions Cust Reb (ZO02)
Screen SAPMV13A.3007
    Enter "=SUCH"          // Find

// Selection screen
Screen SAPLSSEL.1104
    if F[Volume rebate group]      // if this field is displayed on this screen        set F[Volume rebate group]     "99"        Enter "/8"        goto next_stmt2    endif    Enter "/12"    goto srch_mat2

label next_stmt2

// Information
Screen SAPMSDYP.0010            // Popup window - Volume rebate group "99" not found  set V[z_temp] "X"  Enter  if V[z_temp]     set V[z_temp] ""     goto MAT_SEL  endif

// Change Cust/ Group Rebate 1524 : Overview Conditions Cust Reb (ZO02)
Screen SAPMV13A.3007
    set V[i] "1"
Label LOOP_START    If not F[Amt.to be paid(&V[i])]        goto LOOP_END    endif    set V[z_vbo2_field_label]   "&F[HEADERLINE(&V[i])]"    set V[z_vbo_str]            "&V[z_vbo2_field_label]"    set V[x]    "&V[z_vbo2_field_label]" pattern="%POSTING_GROUP"    if Q[OK]        set F[Amt.to be paid(&V[i])]   "&V[z_vbo2_dcn_amt]"        goto LOOP_END    endif    set V[i]  "&V[i]" + "1"    goto LOOP_START

Label LOOP_END
    Enter "/80"   // clicking first page button

// Change Cust/ Group Rebate 1524 : Overview Conditions Cust Reb (ZO02)
Screen SAPMV13A.3007
    Enter "=SUCH"          // Find

// Selection screen
Screen SAPLSSEL.1104
    set F[Volume rebate group]     "99"    Enter "/8"

Screen SAPMV13A.3007
    set V[z_vbo2_dcn_amt2] "&F[Amt.to be paid(&V[i])]"    Enter "/11"  OnError="Continue"         // Save    if V[_lasterror]        set V[z_vbo2_scr] ""        set V[z_vbo2_message] "&V[_lasterror]"        goto SCRIPT_END    endif    goto skip_mat2


label srch_mat2

Label MAT_SEL

    set V[i] "1"    // Change Cust/ Group Rebate 88 : Overview Conditions Cust Reb (ZO02)
Screen SAPMV13A.3007    Enter "=SUCH"          // Find    // Selection screen
Screen SAPLSSEL.1104    if not F[Material]        set V[z_vbo2_scr]   ""        message "E: Posting Group / Material not found" "-statusline"        enter "/nVBO2"        goto SCRIPT_END    endif    set F[Volume rebate group]     ""    set F[Material]     "99999"    Enter "/8"

label VBO2_CONT_PG   // Continuing searching for Posting Group / Material

Screen SAPMV13A.3007
    set V[z_vbo2_field_label] "&F[HEADERLINE(&V[i])]"    set V[z_vbo_str]    "&V[z_vbo2_field_label]"    set V[x]         "&V[z_vbo2_field_label]" pattern="%CREDIT / DEBIT"    if Q[OK]        goto CONTINUE_PROCESS    endif    set F[Amt.to be paid(&V[i])]   "&V[z_vbo2_dcn_amt]"    goto LOOP_END2

label CONTINUE_PROCESS
    set V[z_vbo2_scr]   ""    message "E: Posting Group / Material not found" "-statusline"    enter "/nVBO2"    goto SCRIPT_END

Label LOOP_END2
    Enter "/80"

// Change Cust/ Group Rebate 88 : Overview Conditions Cust Reb (ZO02)
Screen SAPMV13A.3007
    Enter "=SUCH"          // Find

// Selection screen
Screen SAPLSSEL.1104
    set F[Material]     "99999"    Enter "/8"

Screen SAPMV13A.3007
    set V[z_vbo2_dcn_amt2] "&F[Amt.to be paid(&V[i])]"    Enter "/11"  OnError="Continue"         // Save VBO2    if V[_lasterror]        set V[z_vbo2_scr] ""        set V[z_vbo2_message] "&V[_lasterror]"        goto SCRIPT_END    endif

// At this point, a "6.." document has been created
label skip_mat2

// Partner selection
Screen SAPLV09C.0120
    call "Z_ZGXT_rfC_errcust" in.CUSTOMER="&V[z_vb02_invoice]"    Enter

// Information
Screen SAPMSDYP.0010
    set V[z_vbo2_dcn_pmt_tmp] "&F[MESSTXT1]"    set V[z_message_type] "&V[z_vbo2_dcn_pmt_tmp](1-10)"    if V[z_message_type=PartRebSet]           // True = Found "99"       set V[z_vbo2_dcn_pmt]     "&V[z_vbo2_dcn_pmt_tmp](21-29)"    else       set V[z_vbo2_scr]   ""       message "E: Posting Group / Material not found" "-statusline"       enter "/nVBO2"       goto SCRIPT_END    endif    Enter

// Goto Transaction VF01 to get VF Number
Screen SAPMV13A.0401
    Enter "/n"

Screen SAPLSMTR_NAVIGATION.0100
    set V[z_cntr]  "1"

label TRY_VF01_AGAIN
    if V[z_cntr>20]        goto EXIT_TRY_VF01_AGAIN    else        set V[z_vbo2_fldmsge] ""    endif    if V[z_vbo2_tranpayr] and V[z_vbo2_transpayr_chck=X]  // if it has a value        goto START_VA02    else        goto SKIP_VA02    endif

label SKIP_VA02
    Enter "/nvf01"

label START_VA02
    if V[z_vbo2_tranpayr] and V[z_vbo2_transpayr_chck=X]        enter "/nva02"        include "va02_transfer_cust.txt"         //  *************  z_vbo2_dcn_pmt    endif

Screen SAPMV60A.0102
    title "Processing Document - Please Wait ..."    retry on error    set cell[Docs to be processed,Document,1] "&V[z_vbo2_dcn_pmt]"    Enter "/11"          // Save

Screen SAPMV60A.0102
    if V[_message]        set V[z_vbo2_vf01_num_tmp] "&V[_message]"        set V[z_vbo2_vf01_num] "&V[z_vbo2_vf01_num_tmp](10-18)"    endif    if V[z_vbo2_vf01_num=g documen]        set V[z_vbo2_vf01_num] ""        set V[z_cntr]  "&V[z_cntr]" + "1"        set V[z_vbo2_fldmsge]  "yes"        goto TRY_VF01_AGAIN    endif
label EXIT_TRY_VF01_AGAIN    if V[z_vbo2_fldmsge=yes]        set V[z_vbo2_fldmsge] ""        set V[z_vbo2_scr]   ""        message "E: Process &V[z_vbo2_dcn_pmt] With Transaction VF01" "-statusline"        enter "/nVBO2"        goto SCRIPT_END    endif    set V[z_vbo2_chg_fi_count]  "0"

label retry_CHG_FI

    call "Z_ZGXT_RFC_CHG_FI_CUST_TXT" in.DOCNO="&V[z_vbo2_vf01_num]" in.DOCTXT="&V[z_vbo2_doc_txt]" out.RET="z_rfc_good"    set V[z_vbo2_ret]  "&V[z_rfc_good]"    if not V[z_vbo2_ret=X] and V[z_vbo2_chg_fi_count<20]      set V[z_vbo2_chg_fi_count]  "&V[z_vbo2_chg_fi_count]" + "1"      goto retry_CHG_FI    endif    if V[z_vbo2_ret=X]      enter "/nF-32" wait="1000"    else      enter "/nvbo2"      goto SCRIPT_END    endif

// Clear Customer: Header Data
Screen SAPMF05A.0131
    retry on error    set V[z_rebate_recpt]    "&V[z_vbo2_rebrecpt]"   // 2nd entry    set V[z_alt_payer]       "&V[z_vb02_tmp_cust]"   // 1st entry    if V[z_vbo2_tranpayr_hold] and V[z_vbo2_transpayr_chck=X]        set F[Account]              "&V[z_vbo2_tranpayr_hold]"        set V[z_vb02_tmp_cust]        "&V[z_vbo2_tranpayr_hold]"        set V[z_vbo2_tranpayr_hold]   ""    else        if V[z_vbo2_tranpayr_hold] and not V[z_vbo2_transpayr_chck=X]            set F[Account]                "&V[z_vbo2_rebrecpt]"            set V[z_vb02_tmp_cust]          "&V[z_vbo2_tranpayr_hold]"            set V[z_vbo2_tranpayr_hold_tmp] "&V[z_vbo2_tranpayr_hold]"            set V[z_vbo2_tranpayr_hold]     ""        else            set F[Account]             "&V[z_vbo2_rebrecpt]"            set V[z_vb02_tmp_cust]       "&V[z_vbo2_rebrecpt]"        endif    endif    set R[Document Number]     "X"    Enter "/16"          // Open items

// Clear Customer Enter selection criteria
Screen SAPMF05A.0731
    set F[From(1)]     "&V[z_vbo2_vf01_num]"  // 9 number    if V[z_vbo2_tranpayr_hold_tmp] and not V[z_vbo2_transpayr_chck=X]        goto ALT_PAYER    else        set F[From(2)]     "&V[z_docu_num]" // (From Initial RFC call)   "&V[z_vbo2_vf01_num]"        Enter "/16"            // Open items        goto SKIP_ALT_PAYER    endif

label ALT_PAYER
    Enter "/7"          // Other account

// Clear Customer Select open items
Screen SAPMF05A.0710
    set F[Account]     "&V[z_alt_payer]"   //"&V[z_rebate_recpt]" //"&V[z_vbo2_tranpayr]"    set R[Document Number]     "X"    Enter "/16"          // Open items

// Clear Customer Enter selection criteria
Screen SAPMF05A.0731
    set F[From(1)]     "&V[z_docu_num]"  //"&V[z_vbo2_dcn_amt]"    Enter "/16"

label SKIP_ALT_PAYER

// Clear Customer Process open items
Screen SAPDF05X.3100
    Enter "=OMX"          // Select All

// Clear Customer Process open items
Screen SAPDF05X.3100
    Enter "=Z-"          // Deactivate Items.2

// Clear Customer Process open items
Screen SAPDF05X.3100
    Enter "=REST"          // Res.items

// Clear Customer Create residual items
Screen SAPDF05X.3100
    set V[z_vb02_pos] ""    set V[z_vb02_neg] ""    set V[absrow] "1"   // Absolute row number    set V[relrow] "1"   // Relative row number    set V[idx]    "1"    GetTableAttribute T[SAPDF05X_TC_6106] FirstVisibleRow=FVisRow LastVisibleRow=LVisRow LastRow=LastRow    if V[FVisRow=1]        // First row on screen?        goto new_row_f32    endif    Enter "/ScrollToLine=1" Table="T[SAPDF05X_TC_6106]"   // scroll to first line

label new_screen_f32
Screen SAPDF05X.3100
    GetTableAttribute T[SAPDF05X_TC_6106] FirstVisibleRow=FVisRow LastVisibleRow=LVisRow LastRow=LastRow    set V[relrow] 1

label new_row_f32
    if V[absrow>&V[LastRow]]  // end of table?        goto end_of_table_f32    endif    if V[absrow>&V[LVisRow]]  // end of screen?        Enter "/ScrollToLine=&V[absrow]"  Table="T[SAPDF05X_TC_6106]"        goto new_screen_f32    endif
label NEXT_SELECTION    set V[z_f32_usdgross_&V[idx]] "&cell[SAPDF05X_TC_6106,Net amount,&V[relrow]]"
// Check negative value    if (V[z_f32_usdgross_&V[idx]=&V[z_vbo2_dcn_amt2]] or V[z_f32_usdgross_&V[idx]=&V[z_vbo2_rfc_pymtamt]] or V[z_f32_usdgross_&V[idx]=&V[z_vbo2_rfc_invamt]]) and not V[z_vb02_neg=yes]        SetCursor cell[SAPDF05X_TC_6106,Net amount,&V[relrow]]        enter "/2"        set V[z_vb02_neg] "yes"        goto VALUE_FOUND    endif    set V[z_tmp] "&V[z_vbo2_dcn_amt2]" * "-1"    set V[z_tmp2] "&V[z_vbo2_rfc_pymtamt]" * "-1"    set V[z_tmp3] "&V[z_vbo2_rfc_invamt]" * "-1"    set V[tmp]  "&cell[SAPDF05X_TC_6106,Net amount,&V[relrow]]"    set V[tmp] "&V[tmp]" * "1"

// Check positive value
    if (V[tmp=&V[z_tmp]] or V[tmp=&V[z_tmp2]] or V[tmp=&V[z_tmp3]]) and not V[z_vb02_pos=yes]      // postive value        setCursor cell[SAPDF05X_TC_6106,Net amount,&V[relrow]]        enter "/2"        set V[z_vb02_pos] "yes"        goto VALUE_FOUND    endif    set V[z_f32_tmp] "&cell[SAPDF05X_TC_6106,Document Number,&V[relrow]]"    if not V[z_f32_tmp]        goto end_of_table_f32    endif    set V[absrow] "&V[absrow]" + "1"    set V[relrow] "&V[relrow]" + "1"    set V[idx] "&V[idx]"  + "1"    goto new_row_f32

label end_of_table_f32
label VALUE_FOUND

Screen SAPDF05X.3100
    if V[z_vb02_neg=yes] and V[z_vb02_pos=yes]        set cell[SAPDF05X_TC_6106,RCd,&V[relrow]]  "C20"        goto  SELECTION_COMPLETE    else        set cell[SAPDF05X_TC_6106,RCd,&V[relrow]]  "C20"        set V[absrow]  "1"        set V[relrow]  "1"        set V[idx]     "1"        goto NEXT_SELECTION    endif
label SELECTION_COMPLETE    Enter "/11"          // Post

// Clear Customer: Header Data
Screen SAPMF05A.0131
    set V[z_vbo2_msg]            "&V[_message]"    set V[z_vbo2_msg2]           "&V[_message](10-19)"    set V[z_vbo2_scr]            "X"    set V[z_vbo2_f32_docnum]     "&V[z_vbo2_msg2]"    //    set V[z_vbo2_amt]            "&V[z_vbo2_dcn_amt]"    set V[z_vbo2_doc_txt_disp]   "&V[z_vbo2_doc_txt]"    set V[z_vbo2_agmtn]          "&F[Agreement]"    set V[z_vbo2_tranpayr_disp]  "&V[z_vbo2_tranpayr_hold_tmp]"    set V[z_vbo2_successful]     "X"    return  // "S: &V[z_vbo2_msg]"  "-statusline"   // go  back to VBO2

label SCRIPT_END

 

Hope this helps,

 

Neal


Viewing all articles
Browse latest Browse all 8594

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>