Copying Variants
We have 2 SAP boxes one for development the other for production.
There is a program say <b>PROGRAM1 on the production server</b> whose variants we want to copy to become the variants of another program say <b>PROGRAM2 on the development server</b>.
Both these program share the same selection screen design. My questions are
1) Can only the variants of one program be imported into another program. More specifically is there any transaction to do this?
2) Can this be managed programatically?
If program names are same on both boxes this can be achieved easily with report RSTRANSP. With this report you can create transport on source system and ask your basis to import this into the target system .
For variant of program 1 on system A to varaint of program 2 on System B is not possible . You can write ABAP to download , change the program names in file and then upload .
Cheers.
Similar Messages
-
Copy Variants between Web Templates
Experts,
Our users access all BI Reports via the SAP Portal. The reports are published using Web Templates (developed using the Web Application Designer). We are on BW 7.0 EHP 1.
My question relates to Variants created on the web templates. Is there a way to copy variants from one web template to another, if the templates are based off of the same query? I can see that the web template variants are in SE11 table RSRPARAMETRIZA. But I am not able to see a way to copy them from one template to another. Any thoughts? Thanks!
JoseExperts,
Our users access all BI Reports via the SAP Portal. The reports are published using Web Templates (developed using the Web Application Designer). We are on BW 7.0 EHP 1.
My question relates to Variants created on the web templates. Is there a way to copy variants from one web template to another, if the templates are based off of the same query? I can see that the web template variants are in SE11 table RSRPARAMETRIZA. But I am not able to see a way to copy them from one template to another. Any thoughts? Thanks!
Jose -
Copying variants between programs
Dear All,
Please guide me in copying variants of one program into another program where selection screen of both the programs are same.
Regards,
N.JainHi,
Copy Program Variants from one to another
This code copies variants from one program to another provided that the programs have identical selection screens.
Copy Variants from one Program to another.
REPORT Z_COPY_VARIANTS_PROG_TO_PROG .
=====================================================
Data Declarations Section
=====================================================
TABLES : VARID , VARIS , VARIT .
DATA : BEGIN OF MYVARID OCCURS 0 .
INCLUDE STRUCTURE VARID .
DATA : END OF MYVARID .
DATA : BEGIN OF MYVARIS OCCURS 0 .
INCLUDE STRUCTURE VARIS .
DATA : END OF MYVARIS .
DATA : BEGIN OF MYVARIT OCCURS 0 .
INCLUDE STRUCTURE VARIT .
DATA : END OF MYVARIT .
DATA : BEGIN OF MYVARI OCCURS 0 .
INCLUDE STRUCTURE VARI .
DATA : END OF MYVARI .
DATA : MANS(1) TYPE C .
DATA : PROGRAMM LIKE RS38M-PROGRAMM .
DATA : BEGIN OF MDYNPFIELDS OCCURS 1 .
INCLUDE STRUCTURE DYNPREAD .
DATA : END OF MDYNPFIELDS .
CONSTANTS BUTTONSELECTED(1) TYPE C VALUE 'X' .
======================================================
Macro for Inputing Filenames
======================================================
DEFINE GET_FILENAME .
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
DEF_FILENAME = ' '
DEF_PATH = &1
MASK = ',.,..'
MODE = '0'
TITLE = ' '
IMPORTING
FILENAME = &2
RC =
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
END-OF-DEFINITION .
======================================================
Macro for Downloading to ASCII Files
======================================================
DEFINE DOWNLOAD_TO_ASCII .
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
BIN_FILESIZE = ' '
CODEPAGE = ' '
FILENAME = &1
FILETYPE = 'DAT'
MODE = ' '
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
COL_SELECT = ' '
COL_SELECTMASK = ' '
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = &2
FIELDNAMES =
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
GUI_REFUSE_FILETRANSFER = 8
OTHERS = 9.
END-OF-DEFINITION .
======================================================
Macro for uploading Data from ASCII files
======================================================
DEFINE UPLOAD_FROM_ASCII .
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
CODEPAGE = ' '
FILENAME = &1
FILETYPE = 'DAT'
HEADLEN = ' '
LINE_EXIT = ' '
TRUNCLEN = ' '
USER_FORM = ' '
USER_PROG = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = &2
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
OTHERS = 10.
END-OF-DEFINITION .
======================================================
Selection Screen Default
======================================================
PARAMETERS : P_FROM_P LIKE RS38M-PROGRAMM OBLIGATORY .
PARAMETERS : P_TO_P LIKE RS38M-PROGRAMM OBLIGATORY .
PARAMETERS : P_SAME_S RADIOBUTTON GROUP GRP1 DEFAULT 'X' .
PARAMETERS : P_DOWNLD RADIOBUTTON GROUP GRP1 .
PARAMETERS : P_UPLOAD RADIOBUTTON GROUP GRP1 .
PARAMETERS : P_FILE_D LIKE RLGRAP-FILENAME DEFAULT 'c:\varid.txt' .
PARAMETERS : P_FILE_S LIKE RLGRAP-FILENAME DEFAULT 'c:\varis.txt' .
PARAMETERS : P_FILE_T LIKE RLGRAP-FILENAME DEFAULT 'c:\varit.txt' .
PARAMETERS : P_FILE LIKE RLGRAP-FILENAME DEFAULT 'c:\vari.txt' .
=====================================================
At Selection Screen Events
=====================================================
AT SELECTION-SCREEN .
PROGRAMM = P_FROM_P .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE_D .
GET_FILENAME 'c:\varid.txt' P_FILE_D .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE_S .
GET_FILENAME 'c:\varis.txt' P_FILE_S .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE_T .
GET_FILENAME 'c:\varit.txt' P_FILE_T .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE .
GET_FILENAME 'c:\vari.txt' P_FILE .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FROM_P .
CLEAR MDYNPFIELDS . REFRESH MDYNPFIELDS .
MDYNPFIELDS-FIELDNAME = 'P_FROM_P' .
APPEND MDYNPFIELDS .
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = SY-CPROG
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = MDYNPFIELDS
EXCEPTIONS
INVALID_ABAPWORKAREA = 1
INVALID_DYNPROFIELD = 2
INVALID_DYNPRONAME = 3
INVALID_DYNPRONUMMER = 4
INVALID_REQUEST = 5
NO_FIELDDESCRIPTION = 6
INVALID_PARAMETER = 7
UNDEFIND_ERROR = 8
DOUBLE_CONVERSION = 9
STEPL_NOT_FOUND = 10
OTHERS = 11.
READ TABLE MDYNPFIELDS INDEX 1 .
PROGRAMM = MDYNPFIELDS-FIELDVALUE .
CALL FUNCTION 'REPOSITORY_INFO_SYSTEM_F4'
EXPORTING
OBJECT_TYPE = 'PROG'
OBJECT_NAME = PROGRAMM
IMPORTING
OBJECT_NAME_SELECTED = PROGRAMM
EXCEPTIONS
CANCEL = 1
WRONG_TYPE = 2
OTHERS = 3.
P_FROM_P = PROGRAMM .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_TO_P .
CLEAR MDYNPFIELDS . REFRESH MDYNPFIELDS .
MDYNPFIELDS-FIELDNAME = 'P_TO_P' .
APPEND MDYNPFIELDS .
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = SY-CPROG
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = MDYNPFIELDS
EXCEPTIONS
INVALID_ABAPWORKAREA = 1
INVALID_DYNPROFIELD = 2
INVALID_DYNPRONAME = 3
INVALID_DYNPRONUMMER = 4
INVALID_REQUEST = 5
NO_FIELDDESCRIPTION = 6
INVALID_PARAMETER = 7
UNDEFIND_ERROR = 8
DOUBLE_CONVERSION = 9
STEPL_NOT_FOUND = 10
OTHERS = 11.
READ TABLE MDYNPFIELDS INDEX 1 .
PROGRAMM = MDYNPFIELDS-FIELDVALUE .
CALL FUNCTION 'REPOSITORY_INFO_SYSTEM_F4'
EXPORTING
OBJECT_TYPE = 'PROG'
OBJECT_NAME = PROGRAMM
IMPORTING
OBJECT_NAME_SELECTED = PROGRAMM
EXCEPTIONS
CANCEL = 1
WRONG_TYPE = 2
OTHERS = 3.
P_TO_P = PROGRAMM .
======================================================
Start of Selection
======================================================
START-OF-SELECTION .
CASE BUTTONSELECTED.
WHEN P_SAME_S .
PERFORM COPY_FROM_PROG_TO_PROG .
WHEN P_DOWNLD .
PERFORM VDOWNLOAD .
WHEN P_UPLOAD .
PERFORM VUPLOAD .
ENDCASE .
*& Form COPY_FROM_PROG_TO_PROG
text
--> p1 text
<-- p2 text
FORM COPY_FROM_PROG_TO_PROG.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
DEFAULTOPTION = 'Y'
TEXTLINE1 = 'Are you sure you want to copy Variants ? '
TEXTLINE2 = ' '
TITEL = 'Confirmation '
START_COLUMN = 25
START_ROW = 6
CANCEL_DISPLAY = 'X'
IMPORTING
ANSWER = MANS
EXCEPTIONS
OTHERS = 1.
IF MANS = 'J' .
REFRESH MYVARID . CLEAR MYVARID .
SELECT * FROM VARID INTO TABLE MYVARID
WHERE REPORT = P_FROM_P.
LOOP AT MYVARID .
MYVARID-REPORT = P_TO_P .
MODIFY MYVARID .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARID WHERE REPORT = P_TO_P .
INSERT VARID FROM TABLE MYVARID .
ENDIF .
REFRESH MYVARIS . CLEAR MYVARIS .
SELECT * FROM VARIS INTO TABLE MYVARIS
WHERE REPORT = P_FROM_P.
LOOP AT MYVARIS .
MYVARIS-REPORT = P_TO_P .
MODIFY MYVARIS .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARIS WHERE REPORT = P_TO_P .
INSERT VARIS FROM TABLE MYVARIS .
ENDIF .
REFRESH MYVARIT . CLEAR MYVARIT .
SELECT * FROM VARIT INTO TABLE MYVARIT
WHERE REPORT = P_FROM_P.
LOOP AT MYVARIT .
MYVARIT-REPORT = P_TO_P .
MODIFY MYVARIT .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARIT WHERE REPORT = P_TO_P .
INSERT VARIT FROM TABLE MYVARIT .
ENDIF .
REFRESH MYVARI . CLEAR MYVARI .
SELECT * FROM VARI INTO TABLE MYVARI
WHERE REPORT = P_FROM_P.
LOOP AT MYVARI .
MYVARI-REPORT = P_TO_P .
MODIFY MYVARI .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARI WHERE REPORT = P_TO_P .
INSERT VARI FROM TABLE MYVARI .
ENDIF .
ENDIF .
ENDFORM. " COPY_FROM_PROG_TO_PROG
*& Form VDOWNLOAD
text
--> p1 text
<-- p2 text
FORM VDOWNLOAD.
REFRESH MYVARID . CLEAR MYVARID .
SELECT * FROM VARID INTO TABLE MYVARID
WHERE REPORT = P_FROM_P.
DOWNLOAD_TO_ASCII P_FILE_D MYVARID .
REFRESH MYVARIS . CLEAR MYVARIS .
SELECT * FROM VARIS INTO TABLE MYVARIS
WHERE REPORT = P_FROM_P.
DOWNLOAD_TO_ASCII P_FILE_S MYVARIS .
REFRESH MYVARIT . CLEAR MYVARIT .
SELECT * FROM VARIT INTO TABLE MYVARIT
WHERE REPORT = P_FROM_P.
DOWNLOAD_TO_ASCII P_FILE_T MYVARIT .
REFRESH MYVARI . CLEAR MYVARI .
SELECT * FROM VARI INTO TABLE MYVARI
WHERE REPORT = P_FROM_P.
DOWNLOAD_TO_ASCII P_FILE MYVARI .
ENDFORM. " VDOWNLOAD
*& Form VUPLOAD
text
--> p1 text
<-- p2 text
FORM VUPLOAD.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
DEFAULTOPTION = 'Y'
TEXTLINE1 =
'Are you sure you want to upload Variants ? '
TEXTLINE2 = ' '
TITEL = 'Confirmation '
START_COLUMN = 25
START_ROW = 6
CANCEL_DISPLAY = 'X'
IMPORTING
ANSWER = MANS
EXCEPTIONS
OTHERS = 1.
IF MANS = 'J' .
REFRESH MYVARID . CLEAR MYVARID .
UPLOAD_FROM_ASCII P_FILE_D MYVARID .
LOOP AT MYVARID .
MYVARID-REPORT = P_TO_P .
MODIFY MYVARID .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARID WHERE REPORT = P_TO_P .
INSERT VARID FROM TABLE MYVARID .
ENDIF .
REFRESH MYVARIS . CLEAR MYVARIS .
UPLOAD_FROM_ASCII P_FILE_S MYVARIS .
LOOP AT MYVARIS .
MYVARIS-REPORT = P_TO_P .
MODIFY MYVARIS .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARIS WHERE REPORT = P_TO_P .
INSERT VARIS FROM TABLE MYVARIS .
ENDIF .
REFRESH MYVARIT . CLEAR MYVARIT .
UPLOAD_FROM_ASCII P_FILE_T MYVARIT .
LOOP AT MYVARIT .
MYVARIT-REPORT = P_TO_P .
MODIFY MYVARIT .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARIT WHERE REPORT = P_TO_P .
INSERT VARIT FROM TABLE MYVARIT .
ENDIF .
REFRESH MYVARI . CLEAR MYVARI .
UPLOAD_FROM_ASCII P_FILE MYVARI .
LOOP AT MYVARI .
MYVARI-REPORT = P_TO_P .
MODIFY MYVARI .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARI WHERE REPORT = P_TO_P .
INSERT VARI FROM TABLE MYVARI .
ENDIF .
ENDIF .
ENDFORM. " VUPLOAD
Reward if Helpfull,
Naresh -
Copying variants between different servers
Hello All ,
There are 2 servers MSAP and 1SAP ,1SAP is the new implementation that we are doing .MSAP is their previous system .
I have to copy a program from MSAP to 1SAP ,but there are many variants in that .Is there any method i can copy variants between 2 different servers?? coz there are lot of variants in the existing system .
Regards ,
Hemanth .Hi,
Refer FM's:-
RS_VARIANT_CONTENTS or
RS_VARIANT_ADD or
RS_VARIANT_CHANGE.
Also you can refer thread:-
Re: Copying Variants
Hope this helps you.
Regards,
Tarun -
Copy variant characteristics from Sales Order/Item to Production Order
Dear All,
I have a requirement wherein I have to copy variant characteristics fromSales Order/Item to Production Order. In this regard I was looking at Enhancement "CLFM0002". Is it possible to copy the variant characteristics automatically from the Sales Order/Item to Production Order?
Thanks,
Pravat.Pravant,
If you are implementing Variant Configuration, or using configurable material in that case you will have to maintain
Characteristics in CT04
Classes in CL02
Configuration Profile CU41
The material that you are mentioning must have class and charcteristics activated or mentioned in material master. undre classification view. In production you maintain Configurable material BOM we will be using the same material
Regards
Sathya -
Copying variants & Layouts from 4.7 to ECC 6.0
Hi All,
Upgrading Client system from 4.7 to ECC 6.0. The 4.7 server would have its own variants and layout for different objects.
How do I copy those variants and layouts to my ECC 6.0 server?
Thanks for your valuable inputs.
RajeshHello prashant,
SPDA_GET_STACK_INFO will check wether all PATCH prerequisites are met or not your ST related level is not up to the required level.
Please check this requirement up the level of STand run it agin.
Thank you,
Shyam -
Copy variants from query to query.
Hello ,
Does anyone know how to copy the variants from one query to other ??
Do I need a custom program to accomplish this ?? If yes any suggestions on the FM's to used for this .
GautamHi,
you can: use RS_VARIANT_COPY.
First identify the corresponding report:
SE16 table VARID, enter your Variant techname in VARIANT. If you get several reports then you should save a new variant with a name you think uinque (ZZZZZZZ).
Once you have the report name, goto SE37 FM: RS_VARIANT_COPY and enter the parameters as follows:
Import parameters Value
REPORT GP6G85U7V6PTAF72EGNL26J3VVL
VARIANT1 VARTEST_Z
COPY_VARIANT VARTEST_Z2
hope this helps
Olivier.
Message was edited by:
Olivier Cora -
Create variants and Copy variants on BEX
Hi Experts!
Please, could somebody tell me how can I create a variant on a query (I don't found the icon for "save as variant", and how can I copy the variants of a query to another query?
Thank you in advanceClick the refresh icon. Enter the parameters. Click the 'save' icon, and here it is possible to save the selections as a variant. But I'm not sure how to transfer this to another query.
Regards, -
Copy variants between programs
Hi!
I've copied a Z program into an another Z program in the development system. Unfortunately there are a lot of variants to the old program in the productive system. Because these variants are only in the productive syste I could not copy them.
After the new program is transported into the productive system I have to restore the variants also.
I see a few ways to it, but I don't have experience in it yet, and I don't know, which one is possible to solve:
- download from the old and upload the variants to the new program
- copy them using a standard program/FM
If you know a solution, feel free to share it with me.
Thank you
TamáHi
This is a my utility program to copy a variant between two programs:
REPORT ZUT_COPY_VARIANT .
SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-T01.
PARAMETERS: P_REP1 LIKE RSVAR-REPORT OBLIGATORY,
P_REP2 LIKE RSVAR-REPORT OBLIGATORY.
SELECTION-SCREEN END OF BLOCK BL1.
DATA BEGIN OF DYNPFIELDS OCCURS 1.
INCLUDE STRUCTURE DYNPREAD.
DATA END OF DYNPFIELDS.
DATA: TEXT_1(100),
TEXT_2(100).
DATA: ANSWER.
AT SELECTION-SCREEN.
IF P_REP1 = P_REP2.
MESSAGE E208(00) WITH 'Programmi di orig. e destin. identici'(E02).
ENDIF.
MESSAGE W208(00) WITH 'Verificare omogeneità scherm. selez.'(W01).
AT SELECTION-SCREEN ON P_REP1.
PERFORM CHECK_REPORT USING P_REP1.
AT SELECTION-SCREEN ON P_REP2.
PERFORM CHECK_REPORT USING P_REP2.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_REP1.
PERFORM F4_REPORT USING 'P_REP1'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_REP2.
PERFORM F4_REPORT USING 'P_REP2'.
START-OF-SELECTION.
TEXT_1 = 'Tutte le varianti del report &'(001).
REPLACE '&' WITH P_REP1 INTO TEXT_1.
TEXT_2 = 'saranno copiate nel report &'(002).
REPLACE '&' WITH P_REP2 INTO TEXT_2.
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
EXPORTING
DIAGNOSETEXT1 = TEXT_1
DIAGNOSETEXT2 = TEXT_2
TEXTLINE1 = 'Eseguire copia varianti?'(003)
TITEL = 'Copiare Varianti'(004)
IMPORTING
ANSWER = ANSWER.
CHECK ANSWER = 'J'.
CALL FUNCTION 'RS_COPY_SELECTION_SETS'
EXPORTING
SOURCE_REPORT = P_REP1
TARGET_REPORT = P_REP2
* DEVC =
* CHANGE_ENAME = 'X'
EXCEPTIONS
VARIANT_LOCKED = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
MESSAGE S208(00) WITH 'Varianti copiate positivamente'(S01).
ENDIF.
*& Form CHECK_REPORT
* text
* -->P_REP text
FORM CHECK_REPORT USING P_REP.
SELECT SINGLE NAME FROM TRDIR INTO P_REP WHERE NAME = P_REP.
IF SY-SUBRC <> 0.
MESSAGE E368(00) WITH P_REP 'inesistente o inattivo'(E01).
ENDIF.
ENDFORM. " CHECK_REPORT
*& Form F4_REPORT
* text
* -->P_PARAM text
FORM F4_REPORT USING P_PARAM.
FIELD-SYMBOLS: <REPORT> TYPE ANY.
ASSIGN (P_PARAM) TO <REPORT>.
REFRESH DYNPFIELDS.
CLEAR DYNPFIELDS.
DYNPFIELDS-FIELDNAME = P_PARAM.
APPEND DYNPFIELDS.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = SY-CPROG
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = DYNPFIELDS
EXCEPTIONS
OTHERS.
IF SY-SUBRC = 0.
READ TABLE DYNPFIELDS INDEX 1.
<REPORT> = DYNPFIELDS-FIELDVALUE.
ENDIF.
PERFORM PROGRAM_DIRECTORY "#EC *
USING <REPORT>
'X'.
ENDFORM. " F4_REPORT
* FORM PROGRAM_DIRECTORY *
* --> PROGRAMM *
* --> F4_CALL *
FORM PROGRAM_DIRECTORY USING PROGRAMM LIKE RS38M-PROGRAMM
F4_CALL.
DATA: L_PROGRAMM LIKE RS38M-PROGRAMM.
L_PROGRAMM = PROGRAMM.
IF L_PROGRAMM = SPACE.
SUBMIT RSABADAB AND RETURN VIA SELECTION-SCREEN
WITH F4_CALL = F4_CALL.
ELSE.
SUBMIT RSABADAB AND RETURN VIA SELECTION-SCREEN
WITH REPNAME CP L_PROGRAMM
WITH F4_CALL = F4_CALL.
ENDIF.
GET PARAMETER ID 'RID' FIELD PROGRAMM. "#EC *
ENDFORM.
Max -
Copying Variant Configuration across sales order items
Hi,
We are working with SAP 4.7.
I have a requirement to default the variant configuration values entered within line 1 of the sales order entry process on to subsequent lines. i.e. defaulting initial values for the configuration.
Our users have to enter many variant line items on a sales order and within an individual order the variant characteristics will be very similar, therefore by defaulting these values to be the same as the previously entered line would be a considerable overhead saving.
However I am having difficulty accessing the variant values which have been entered in the first line item. I have looked at userexit_move_workarea_to_sdwa and userexit_get_field_from_sdcom, however I don't know if I am heading in the right direction. Any advice appreciated.
Thanks for your time.We are doing this with main-positions and subpositions. The sales clerk enters the main Position with all the characteristics, switches to the tab "Fast data entry" types in the main position, he wants to copy from and the material. There is a dependency which calls a function module which does the real work.
This works with 4.6B in 4.7 there is a psotion type global position which acts similiar.
Ok, now the code:
Dependency
pfunction Z_SD_WERTE_CHARACTERICS
(SD_VBAP_UEPOS = SD_VBAP_UEPOS,
STAERKE = $self.STAERKE,
BREITE = $self.BREITE)
/code
CALL FUNCTION 'Z_SD_INHERITANCE'
EXPORTING
GLOBALS = globals
TABLES
QUERY = query
MATCH = match
EXCEPTIONS
FAIL = 1
INTERNAL_ERROR = 2
OTHERS = 3
/code
Z_SD_INHERITANCE
DATA: h_uepos LIKE vbap-uepos.
DATA: x_values TYPE ibco2_value_rec OCCURS 0 WITH HEADER LINE.
FIELD-SYMBOLS:
-values.
ENDLOOP.
ENDIF.
*-- Ausgabeverarbeitung
LOOP AT match WHERE atcio = 'O'.
*-- Konvertierung ATINN auf ATNAM
SELECT SINGLE * FROM cabn WHERE atnam = match-varnam.
CHECK sy-subrc EQ '0'.
READ TABLE x_values WITH KEY atinn = cabn-atinn.
IF sy-subrc IS INITIAL AND
NOT x_values-atwrt IS INITIAL.
match-atwrt = x_values-atwrt.
ELSEIF sy-subrc IS INITIAL AND
NOT x_values-atflv IS INITIAL.
match-atflv = x_values-atflv.
ENDIF.
match-atfor = cabn-atfor.
MODIFY match.
ENDLOOP.
ENDFUNCTION.
/code
Kind regards
Matthias Kabel -
Hi,
I defined variants for Cost Centers in Y_HGS_46000001.
But I also will use these variants in S_ALR_87013611 for instance. But I can't select them. They do not appear.
Is there a opportunity to copy my variants ?
(Because I don't want to type it all in again.)
Markus@Loong Hin Pang
I don't know how to do it. When I execute RS_COPY_SELECTION_SETS the system asks for "specify a processing option".
How can I specify the source program, target program and the client number?
Markus
Edited by: Markus Schreiter on Jun 10, 2008 6:04 AM -
COPY VARIANTS FROM USER TO AN OTHER USER.
Hi Friends ,
I HAVE A QUERY THAT CAN WE COPY THE VARIANTS FROM USER TO USER ,
SUPPOSE AN USER RAM HAVING 100 VARIANTS , THESE 100 VARIANTS OF USER RAM HAVE TO COPY IN USER SHAYAM.
I
REGARDS
DEVENDRA VARSHNEYTry this program in sandbox:
RSSM_VARIANT_COPY_1 -
How to copy variants...
Hello everybody...
My aim is to develop a report which allow the possibility to user to duplicate and modify (according to some criterias like WERKS, DATE...) variants for programs used for the opening of new warehouses.
My problem is that the users want to have in the same program the possibility to create, duplicate or modify dynamic variants or standard variants...
I am not so experienced in ABAP and I really need help from someone with more knowledge on this language...
Thank you per advance.Hi Michael,
You can use the stanard function modules to create the varient.
The FM I use is: SUBST_WRITE_UPGRADE_VARIANT
It creates the varient as well as upgrades (overwrite) it if needed.
The Import parameters are reportneme, name of varient, & the internal table of values you have to create.
Hope this will solve your problem.
Don't forget to reward points, if it works.
Thanks & Regards,
Hemant.
Message was edited by: Hemant Satpute
Message was edited by: Hemant Satpute -
Hi abap gurus,
Plz can any one tell how we can copy the variant from one client to another client.
Plz give me the answer or any program is there plz send me that.
Rgds,Hi rangamma,
Plz go through this program . I think it will help.
DATA : BEGIN OF MYVARID OCCURS 0 .
INCLUDE STRUCTURE VARID .
DATA : END OF MYVARID .
DATA : BEGIN OF MYVARIS OCCURS 0 .
INCLUDE STRUCTURE VARIS .
DATA : END OF MYVARIS .
DATA : BEGIN OF MYVARIT OCCURS 0 .
INCLUDE STRUCTURE VARIT .
DATA : END OF MYVARIT .
DATA : BEGIN OF MYVARI OCCURS 0 .
INCLUDE STRUCTURE VARI .
DATA : END OF MYVARI .
DATA : MANS(1) TYPE C .
DATA : PROGRAMM LIKE RS38M-PROGRAMM .
DATA : BEGIN OF MDYNPFIELDS OCCURS 1 .
INCLUDE STRUCTURE DYNPREAD .
DATA : END OF MDYNPFIELDS .
CONSTANTS BUTTONSELECTED(1) TYPE C VALUE 'X' .
DEFINE GET_FILENAME .
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
DEF_FILENAME = ' '
DEF_PATH = &1
MASK = ',.,..'
MODE = '0'
TITLE = ' '
IMPORTING
FILENAME = &2
RC =
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
END-OF-DEFINITION .
DEFINE DOWNLOAD_TO_ASCII .
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
BIN_FILESIZE = ' '
CODEPAGE = ' '
FILENAME = &1
FILETYPE = 'DAT'
MODE = ' '
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
COL_SELECT = ' '
COL_SELECTMASK = ' '
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = &2
FIELDNAMES =
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
GUI_REFUSE_FILETRANSFER = 8
OTHERS = 9.
END-OF-DEFINITION .
DEFINE UPLOAD_FROM_ASCII .
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
CODEPAGE = ' '
FILENAME = &1
FILETYPE = 'DAT'
HEADLEN = ' '
LINE_EXIT = ' '
TRUNCLEN = ' '
USER_FORM = ' '
USER_PROG = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = &2
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
OTHERS = 10.
END-OF-DEFINITION .
SELECTION-SCREEN begin of line.
SELECTION-SCREEN COMMENT 5(23) T_FROM_P .
PARAMETERS : P_FROM_P LIKE RS38M-PROGRAMM OBLIGATORY .
selection-screen end of line.
SELECTION-SCREEN begin of line.
SELECTION-SCREEN COMMENT 5(23) T_TO_P .
PARAMETERS : P_TO_P LIKE RS38M-PROGRAMM OBLIGATORY .
selection-screen end of line.
SELECTION-SCREEN begin of line.
SELECTION-SCREEN COMMENT 5(23) T_SAME_S .
PARAMETERS : P_SAME_S RADIOBUTTON GROUP GRP1 DEFAULT 'X' .
selection-screen end of line.
SELECTION-SCREEN begin of line.
SELECTION-SCREEN COMMENT 5(23) T_DOWNLD .
PARAMETERS : P_DOWNLD RADIOBUTTON GROUP GRP1 .
selection-screen end of line.
SELECTION-SCREEN begin of line.
SELECTION-SCREEN COMMENT 5(23) T_UPLOAD .
PARAMETERS : P_UPLOAD RADIOBUTTON GROUP GRP1 .
selection-screen end of line.
SELECTION-SCREEN begin of line.
SELECTION-SCREEN COMMENT 5(23) T_FILE_D .
PARAMETERS : P_FILE_D LIKE RLGRAP-FILENAME DEFAULT 'c:\varid.txt' .
selection-screen end of line.
SELECTION-SCREEN begin of line.
SELECTION-SCREEN COMMENT 5(23) T_FILE_S .
PARAMETERS : P_FILE_S LIKE RLGRAP-FILENAME DEFAULT 'c:\varis.txt' .
selection-screen end of line.
SELECTION-SCREEN begin of line.
SELECTION-SCREEN COMMENT 5(23) T_FILE_T .
PARAMETERS : P_FILE_T LIKE RLGRAP-FILENAME DEFAULT 'c:\varit.txt' .
selection-screen end of line.
SELECTION-SCREEN begin of line.
SELECTION-SCREEN COMMENT 5(23) T_FILE .
PARAMETERS : P_FILE LIKE RLGRAP-FILENAME DEFAULT 'c:\vari.txt' .
selection-screen end of line.
AT SELECTION-SCREEN .
PROGRAMM = P_FROM_P .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE_D .
GET_FILENAME 'c:\varid.txt' P_FILE_D .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE_S .
GET_FILENAME 'c:\varis.txt' P_FILE_S .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE_T .
GET_FILENAME 'c:\varit.txt' P_FILE_T .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE .
GET_FILENAME 'c:\vari.txt' P_FILE .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FROM_P .
CLEAR MDYNPFIELDS . REFRESH MDYNPFIELDS .
MDYNPFIELDS-FIELDNAME = 'P_FROM_P' .
APPEND MDYNPFIELDS .
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = SY-CPROG
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = MDYNPFIELDS
EXCEPTIONS
INVALID_ABAPWORKAREA = 1
INVALID_DYNPROFIELD = 2
INVALID_DYNPRONAME = 3
INVALID_DYNPRONUMMER = 4
INVALID_REQUEST = 5
NO_FIELDDESCRIPTION = 6
INVALID_PARAMETER = 7
UNDEFIND_ERROR = 8
DOUBLE_CONVERSION = 9
STEPL_NOT_FOUND = 10
OTHERS = 11.
READ TABLE MDYNPFIELDS INDEX 1 .
PROGRAMM = MDYNPFIELDS-FIELDVALUE .
CALL FUNCTION 'REPOSITORY_INFO_SYSTEM_F4'
EXPORTING
OBJECT_TYPE = 'PROG'
OBJECT_NAME = PROGRAMM
IMPORTING
OBJECT_NAME_SELECTED = PROGRAMM
EXCEPTIONS
CANCEL = 1
WRONG_TYPE = 2
OTHERS = 3.
P_FROM_P = PROGRAMM .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_TO_P .
CLEAR MDYNPFIELDS . REFRESH MDYNPFIELDS .
MDYNPFIELDS-FIELDNAME = 'P_TO_P' .
APPEND MDYNPFIELDS .
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = SY-CPROG
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = MDYNPFIELDS
EXCEPTIONS
INVALID_ABAPWORKAREA = 1
INVALID_DYNPROFIELD = 2
INVALID_DYNPRONAME = 3
INVALID_DYNPRONUMMER = 4
INVALID_REQUEST = 5
NO_FIELDDESCRIPTION = 6
INVALID_PARAMETER = 7
UNDEFIND_ERROR = 8
DOUBLE_CONVERSION = 9
STEPL_NOT_FOUND = 10
OTHERS = 11.
READ TABLE MDYNPFIELDS INDEX 1 .
PROGRAMM = MDYNPFIELDS-FIELDVALUE .
CALL FUNCTION 'REPOSITORY_INFO_SYSTEM_F4'
EXPORTING
OBJECT_TYPE = 'PROG'
OBJECT_NAME = PROGRAMM
IMPORTING
OBJECT_NAME_SELECTED = PROGRAMM
EXCEPTIONS
CANCEL = 1
WRONG_TYPE = 2
OTHERS = 3.
P_TO_P = PROGRAMM .
INITIALIZATION .
T_FROM_P = 'From Program'.
T_TO_P = 'To Program ' .
T_SAME_S = 'Copy from Prog to Prog' .
T_DOWNLD = 'Download to Local Disk' .
T_UPLOAD = 'Upload from Local Disk' .
T_FILE_D = 'Local File VARID' .
T_FILE_S = 'Local File VARIS' .
T_FILE_T = 'Local File VARIT' .
T_FILE = 'Local File VARI' .
START-OF-SELECTION .
CASE BUTTONSELECTED.
WHEN P_SAME_S .
PERFORM COPY_FROM_PROG_TO_PROG .
WHEN P_DOWNLD .
PERFORM VDOWNLOAD .
WHEN P_UPLOAD .
PERFORM VUPLOAD .
ENDCASE .
FORM COPY_FROM_PROG_TO_PROG.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
DEFAULTOPTION = 'Y'
TEXTLINE1 = 'Are you sure you want to copy Variants ? '
TEXTLINE2 = ' '
TITEL = 'Confirmation '
START_COLUMN = 25
START_ROW = 6
CANCEL_DISPLAY = 'X'
IMPORTING
ANSWER = MANS
EXCEPTIONS
OTHERS = 1.
IF MANS = 'J' .
REFRESH MYVARID . CLEAR MYVARID .
SELECT * FROM VARID INTO TABLE MYVARID
WHERE REPORT = P_FROM_P.
LOOP AT MYVARID .
MYVARID-REPORT = P_TO_P .
MODIFY MYVARID .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARID WHERE REPORT = P_TO_P .
INSERT VARID FROM TABLE MYVARID .
ENDIF .
REFRESH MYVARIS . CLEAR MYVARIS .
SELECT * FROM VARIS INTO TABLE MYVARIS
WHERE REPORT = P_FROM_P.
LOOP AT MYVARIS .
MYVARIS-REPORT = P_TO_P .
MODIFY MYVARIS .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARIS WHERE REPORT = P_TO_P .
INSERT VARIS FROM TABLE MYVARIS .
ENDIF .
REFRESH MYVARIT . CLEAR MYVARIT .
SELECT * FROM VARIT INTO TABLE MYVARIT
WHERE REPORT = P_FROM_P.
LOOP AT MYVARIT .
MYVARIT-REPORT = P_TO_P .
MODIFY MYVARIT .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARIT WHERE REPORT = P_TO_P .
INSERT VARIT FROM TABLE MYVARIT .
ENDIF .
REFRESH MYVARI . CLEAR MYVARI .
SELECT * FROM VARI INTO TABLE MYVARI
WHERE REPORT = P_FROM_P.
LOOP AT MYVARI .
MYVARI-REPORT = P_TO_P .
MODIFY MYVARI .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARI WHERE REPORT = P_TO_P .
INSERT VARI FROM TABLE MYVARI .
ENDIF .
ENDIF .
ENDFORM. " COPY_FROM_PROG_TO_PROG
FORM VDOWNLOAD.
REFRESH MYVARID . CLEAR MYVARID .
SELECT * FROM VARID INTO TABLE MYVARID
WHERE REPORT = P_FROM_P.
DOWNLOAD_TO_ASCII P_FILE_D MYVARID .
REFRESH MYVARIS . CLEAR MYVARIS .
SELECT * FROM VARIS INTO TABLE MYVARIS
WHERE REPORT = P_FROM_P.
DOWNLOAD_TO_ASCII P_FILE_S MYVARIS .
REFRESH MYVARIT . CLEAR MYVARIT .
SELECT * FROM VARIT INTO TABLE MYVARIT
WHERE REPORT = P_FROM_P.
DOWNLOAD_TO_ASCII P_FILE_T MYVARIT .
REFRESH MYVARI . CLEAR MYVARI .
SELECT * FROM VARI INTO TABLE MYVARI
WHERE REPORT = P_FROM_P.
DOWNLOAD_TO_ASCII P_FILE MYVARI .
ENDFORM. " VDOWNLOAD
FORM VUPLOAD.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
DEFAULTOPTION = 'Y'
TEXTLINE1 =
'Are you sure you want to upload Variants ? '
TEXTLINE2 = ' '
TITEL = 'Confirmation '
START_COLUMN = 25
START_ROW = 6
CANCEL_DISPLAY = 'X'
IMPORTING
ANSWER = MANS
EXCEPTIONS
OTHERS = 1.
IF MANS = 'J' .
REFRESH MYVARID . CLEAR MYVARID .
UPLOAD_FROM_ASCII P_FILE_D MYVARID .
LOOP AT MYVARID .
MYVARID-REPORT = P_TO_P .
MODIFY MYVARID .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARID WHERE REPORT = P_TO_P .
INSERT VARID FROM TABLE MYVARID .
ENDIF .
REFRESH MYVARIS . CLEAR MYVARIS .
UPLOAD_FROM_ASCII P_FILE_S MYVARIS .
LOOP AT MYVARIS .
MYVARIS-REPORT = P_TO_P .
MODIFY MYVARIS .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARIS WHERE REPORT = P_TO_P .
INSERT VARIS FROM TABLE MYVARIS .
ENDIF .
REFRESH MYVARIT . CLEAR MYVARIT .
UPLOAD_FROM_ASCII P_FILE_T MYVARIT .
LOOP AT MYVARIT .
MYVARIT-REPORT = P_TO_P .
MODIFY MYVARIT .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARIT WHERE REPORT = P_TO_P .
INSERT VARIT FROM TABLE MYVARIT .
ENDIF .
REFRESH MYVARI . CLEAR MYVARI .
UPLOAD_FROM_ASCII P_FILE MYVARI .
LOOP AT MYVARI .
MYVARI-REPORT = P_TO_P .
MODIFY MYVARI .
ENDLOOP .
IF SY-SUBRC = 0 .
DELETE FROM VARI WHERE REPORT = P_TO_P .
INSERT VARI FROM TABLE MYVARI .
ENDIF .
ENDIF .
ENDFORM. " VUPLOAD
Rewards points if it is helpful.
Rgds,
P.Naganjana Reddy -
Modification of values of variant through program for tcode CJB1
hi,
How can we modify variant values for the variant created in TCODE CJB1 and also how to get the variant name saved for tcode CJB1 ? is there any FM available or any sample code for getting/changing the above senario.
many thanks in advance
bobbycheck these fm's
RS_ALL_VARIANTS_4_1_REPORT All Variants for a Report
RS_CHANGE_CREATED_VARIANT
RS_CREATE_VARIANT Creating a variant (not using a selection screen)
RS_GET_SCREENS_4_1_VARIANT All screens assigned to a variant
RS_RWSET_CREATE_VARIANT
RS_RWSET_SAVE_VARIANT
RS_VARIANT_ADD
RS_VARIANT_ADMIN_DATA
RS_VARIANT_ATTR_SAVE
RS_VARIANT_CATALOG Returns variant directory for a report in an internal table
RS_VARIANT_CAT_PRINT
RS_VARIANT_CHANGE Change Variant
RS_VARIANT_CHECK_TSTC Checks entries in report transaction maintenance
RS_VARIANT_CLIENTCOPY Function Module for Client Copy
RS_VARIANT_CONTENTS
RS_VARIANT_CONVERT_TO_DYNAMIC
RS_VARIANT_COPY Copy variant
RS_VARIANT_DELETE Delete Variant (In Current Client or All Clients)
RS_VARIANT_DEL_ALL_CLIENTS
RS_VARIANT_DISPLAY
RS_VARIANT_DISPLAY_FROM_SELSCR
RS_VARIANT_DISPLAY_SUBSCREENS
RS_VARIANT_EXISTS Checks whether variant exists
RS_VARIANT_FETCH
Maybe you are looking for
-
DVD/CD drive not reading DVD's, HP Pavilion DV6448SE, Vista 32-bit o/s
I've tried everything I have gleaned from the forums; drivers, registry changes, etc. The drive just keeps spinning away. Could somebody please suggest a replacement DVD/CD drive?
-
How to see the exception raised in function module...
DEAR ABAPERS, how can i see that exception, when iam excuting Regards, veera
-
Firefox 14.0.1 Won't Start in Full Screen Mode
Firefox 14.0.1 for Mac doesn't appear to retain the full screen mode setting on shut down. It starts in "non-full screen" mode on start. I've tried safe mode startup, set to full and shut down, but it still doesn't keep the setting. Help appreciated
-
IWeb '08 - Web Widget - MobileMe Gallery
Hi, Since the software update, I made an iMovie and published it to my Web Gallery. I went to put a copy of it in my iWeb by inserting a Web Widget from my MobileMe Gallery - but the new movie I made wasn't listed. All of my old movies were there but
-
I would like to know if there is a way to automatically merge a "base" layer with all other layers individually. For example, Layer one is an image, the "base layer". Layers 2 thru 200 are images that need to be merged with the base layer individual