Validation and assignment
Hi Experts,
There are two fields under Validation tab in data manager.
One is Callable another is branch value.
1)Could you explain me the function of those two fields and
2) What is the purpose of assignmentn tab in data manager.
Thanks and regards,
Shalini
Hello Shalini,
Under the validation tab,
Callable is the property for a perticular validation which you have made sothat you can use this validation in another validation. here reusability comes into the picture.
To make the validation callable in other validation, set the property callable=yes.
If you set the property say "yes" then you can see the perticular validation name in the function dropdown list in the expression editor to call in another validation.
Branch Value:The taxonomy lookup field value on which a branch branches.you can write the validations on attributes of taxonomy table.to use this branch value, you have to "Add Branch" option if you want to write validations on attributes and its value.and this Add branch validation always will be a child validation of any validation on which you want to perform.
when you use add brach option then Branch value option will be enable and you can select the category here on which you want to perform the validation and alsio you can see the option "Attributes" and "text Values" drop down list will be enabled to wirte the validation on these in Expression editor.
Validations: Validations in MDM are expressions that return a Boolean success or failure result.
For Example: validation IS_NOT_NULL (Product ID) checks if the value in the field product ID is nul
Assignments: Assignments, instead of returning a Boolean success or failure result, populate data value of any type to a field on which they are applied. Assignments can follow a validation or can be written stand alone. An example of assignment following a validation is
For Example: IF (IS_NULL (City),u201DMumbaiu201D, City) checks for whether the field City is null or not, if the field City is null then it assigns value u201CMumbaiu201D to the field City.
Hope this will clear your doubt.
TNR,
Saurabh...
Edited by: Saurabh Kumar Sahu on Jun 10, 2008 2:09 PM
Similar Messages
-
Adding Branch to Validation and Assignment
According to MDM Data Manager Reference guide page (192/208), can not add "Branch" Validation and Assignment.
According to guide when right-clikcked on expression the "Add Branch" menu option is Disabled.
How to make it Enabled. Or is it a Bug that it is not enabled?
Branch Value field is grayed out/disabled.
Anybody had similar experience? How did you resolve it?
Thanks,
AbhayThank you for you answer. I have a custom repository with no Taxanomy table.
May be that's why the "Add Branch" option was disabled.
Now the question is, Why do you need to have a Taxonomy to enable the "Add branch" feature?
Here is my scenario:
I want to run series of Assignments.
I defined 5 assignments. Thought that I can use MDM Workflow to call them in series. However MDM Workflow does not let me connect one Assignmen Task to next Assignment Task. So though Branched Assignment would be helpful.
However looks like can not use "Add Branch" to assignment to run them in series.
May be I will put a new post.
Abhay -
Cost center validity change and assign it to new company code
Hello
We are having 10 Cost centers in 1000 Company code, And validity of these cost centers is .01.01.2001 to 31.12.9999.
Now business want to create one more company code 2000. and wants to extend these same cost centers to 2000 company code also. But as per SAP std Cost center extention is not possible , bcz cost center can use by only one company code.
Now Company is saying that..they wants the same number for new company code from 23.09.2010 to 31.12.9999..
system is not allow me to change validity period of these cost centers, bcz these saying that the cost center is already defined for given period.
Beacuse new company code will start working from 24.09.2010. so i,e the reason , we want to make example "2561 cost center validity 01.01.2001 to 22.09.2010 for company code 1000. then after words 23.09.2010 to 31.12.9999 the same cost center 2561 will for 2000 company code.
but system is not allowing me to change the validity
Regards
MaheshHi Mangesh
What you wish is not possible.. You will have to create new cost center and assign to the new company code...
may be for simplicity sake, you can add a prefix or suffix to the existing cost center no i.e Cost Ctr 2356 can become N2356 in new comp code
Regards
Ajay M -
Error in Process-Please specify a valid account assignment error inBackend
Hi Gurus,
I am abaper and I am new to SRM technical.
One Po is already there in SRM 4.0 and ERP with cost center and profit center replicated as it is. But my user is chaning the price of the PO in SRM. It is showing as 'Error in Process'
I check in backend error in portal and in rz20 'Please specify a valid account assignment' is error is coming.
This is technical or functional issue.
I checked in BBP_PD_PO_TRANSFER_EXEC, BBP_PO_INBOUND i find the error message as SE E181, But how can i rectify this error.
when they changed the price for other pos it is replicating in backend but why for this po it is giving error, I checked all Cost center and profit center and all are fine...
Please do the needful.
Thanks,
KiranHi,
You said change of price in other POs is working fine. Only one PO goes into error.
Is the cost center, profit center same as the ones in error PO ?
If it's possible, can you also try this:
- Create a PO in ERP directly using the same CC, Profit center as account assignment data
- Check the other account assignment data that got defaulted (e.g. Business area etc) --> Verify whether this data is same in error PO also.
- Could you create the PO successfully ?
Best regards,
Ramki -
While creation of a equipment and assignment of personnel number
Hi
I have activated partner function to the Equipment catagery.
While creating equipment using T.code IE01, I am assigning personnel number to the person responsible partnerfunction.
After that personnel number getting defaulted to operator field as per config setting.
I can create equipment and assign person responsible succussfully.
But at the time of assignment of personnel number with partner function person responsible, I am getting information messege always like
" No customer master record exists for customer 10003511"
I would request you please suggest how to "delink the above message" while creation of a new equipment and assigning the personnel number.
Thanks & Regards
CHSRHello
Please check the personal Number is active or exists in HR Master with its validity.Use TC for checking PA20 for checking the same.
Regards,
Rakesh -
How to create a moveable holiday and assign it to a Holiday Calendar?
Hi Experts,
How to create a moveable holiday and assign it to a Holiday Calendar?
Regards,
TomeshHi Tomesh,
Floating Holidays are created for holidays for which the dates are not decided for the years ahead or dates may changes each year or when a unusual holiday is just introducted for one year.
1.Use transaction SCAL or use the IMG path to the holiday calender.
2.Create a new holiday and select the option " is a movable holiday".
3.Fill in the " public holiday attribute tab" and hit insert date.
4.Fill in the year, month and date for the floating holiday or you could do multiple years at the same time if dates are know and hit create.
5. The new public holiday is created.
6.Assign the new holiday to the holiday calender, while saving you will get a message that " an irregular public holiday is created and being save hit ok. This message will appear in cases when the holiday calender validity and the validity of the floating holiday are matching.
Generate the work schedules and check if th holiday appear in the work schedule.
Award point if useful.
Thanks
Gita -
Reg validations and assignments
Hi All
Im new to MDM and need to clarify some basic doubts....
What is the deifference between validations and assignments and what is their significance , and
SAP MDM is the third party tool and who is the atual vendor for this.
Points rewarded for the best..
Regards
HariHi Hari,
Both validations and assignments can be defined in MDM data manager using
functions and operators.
deifference between validations and assignments
Validations returns boolean value (True or False ) based on some rule
Example: IF (IS_NULL(Name),FALSE,TRUE).
In the above expression if name field contains null value,it returns false otherwise
true. Validations can be executed manually or automatically.
To execute the validations manually just right click on records on which you want to
do validations and execute the validation then you can see the result.
Automatic validations are automatically are executed upon record saving by giving
warning or error meaasge.
Assignments assign return value to the some field which is selected.
Suppose you took number field as assignment field and you have written expression
like this:
Example: IF (IS_NULL(Name),100,200).
If name field has null value, assigns 100 to number field otherwise assigns 200 to
number field.
See below links to get more details:
MDM Validations
New Webinar About Validations with MDM 5.5
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/102dc4e5-07c9-2910-93b3-f49c8ed52509
Validation Funcitons Enhanceable
Thanks
Narendra -
BDC with lots of validations and conversions
hi to all experts,
i need a sample bdc program with lots of validations and conversion.
thanksHi,
REPORT ZMMFTS01A_MAINTAIN_SOURCE_LIST NO STANDARD PAGE HEADING
LINE-SIZE 250.
TABLES eord.
***Types Declaration
**Type of Upload File
TYPES : BEGIN OF ty_final,
matnr(018), "Material No
werks(004), "Plant
vdatu(010), "valid From
bdatu(010), "valid To
lifnr(010), "Vendor
ekorg(004), "Purchase Org
reswk(004), "Plant from which material is procured
ebeln(010), "Agreement
ebelp(005), "Item
feskz(003), "Fix
notkz(003), "Blk
autet(003), "MRP
END OF ty_final.
**Type for Error Records
TYPES : BEGIN OF ty_errmsg,
matnr(018),
werks(004),
vdatu(010),
bdatu(010),
lifnr(010),
ekorg(004),
reswk(004),
ebeln(010),
ebelp(005),
feskz(003),
notkz(003),
autet(003),
messg(200),
END OF ty_errmsg.
**Type to get the existing no of records before comparison
TYPES : BEGIN OF ty_eord,
matnr LIKE eord-matnr,
werks LIKE eord-werks,
erdat LIKE eord-erdat,
vdatu LIKE eord-vdatu,
bdatu LIKE eord-bdatu,
lifnr LIKE eord-lifnr,
flifn LIKE eord-flifn,
ebeln LIKE eord-ebeln,
ebelp LIKE eord-ebelp,
febel LIKE eord-febel,
reswk LIKE eord-reswk,
notkz LIKE eord-notkz,
ekorg LIKE eord-ekorg,
autet LIKE eord-autet,
END OF ty_eord.
**Type to get the no of records in the Database after comparison
TYPES : BEGIN OF ty_eord1,
vdatu LIKE eord-vdatu,
bdatu LIKE eord-bdatu,
END OF ty_eord1.
***Data Declarations
DATA : v_repid LIKE sy-repid,
v_datfm LIKE usr01-datfm,
v_message(200),
v_err_rec TYPE i,
v_errors TYPE i,
v_updated TYPE i,
v_matnr TYPE matnr,
v_lines TYPE i,
v_eord_row TYPE i,
s_count(2) TYPE n,
v_fnam(20) TYPE c,
v_tabix(2) TYPE n,
v_vdatu(10),
v_bdatu LIKE eord-bdatu,
v_datum(10),
f_option type ctu_params.
****Begin of Changes by Pavan Ticket 648507 "D13K948908
DATA : s_vdatu TYPE sy-datum,
s_bdatu TYPE sy-datum.
****End of Changes By Pavan Ticket 648507 "D13K948908
***Internal Tables Declaration
DATA : it_eord TYPE STANDARD TABLE OF ty_eord WITH HEADER LINE, "Internal Table for Appending all the Rows of DB Table EORD
it_bdcdata TYPE STANDARD TABLE OF bdcdata WITH HEADER LINE,
it_final TYPE STANDARD TABLE OF ty_final WITH HEADER LINE,
it_err_rec TYPE STANDARD TABLE OF ty_final WITH HEADER LINE,
it_messtab TYPE STANDARD TABLE OF bdcmsgcoll WITH HEADER LINE,
it_errmsg TYPE STANDARD TABLE OF ty_errmsg WITH HEADER LINE,
it_eord1 TYPE STANDARD TABLE OF ty_eord1 WITH HEADER LINE,
it_ctu_params TYPE STANDARD TABLE OF ctu_params WITH HEADER LINE.
DATA : wa_final LIKE LINE OF it_final.
***Constants
CONSTANTS : c_1 TYPE i VALUE '1',
c_12 TYPE i VALUE '12',
c_x VALUE 'X'.
***Selection Screen
SELECTION-SCREEN : BEGIN OF BLOCK header WITH FRAME TITLE text-002.
SELECTION-SCREEN SKIP.
PARAMETERS P_FNAME LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN : END OF BLOCK header.
I N I L I T I A L I Z A T I O N *
INITIALIZATION.
it_ctu_params-updmode = 'S'.
it_ctu_params-defsize = 'X'.
it_ctu_params-dismode = 'N'.
APPEND it_ctu_params.
A T S E L E C T I O N S C R E E N *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME.
PERFORM file_get.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
PERFORM upload_xcel.
IF NOT it_final[] IS INITIAL.
SORT it_final BY matnr werks lifnr ekorg reswk ebeln ebelp.
DESCRIBE TABLE it_final LINES v_lines.
ENDIF.
**To Know the Date Format for the user name in user master record
SELECT SINGLE datfm FROM usr01
INTO v_datfm
WHERE bname = sy-uname.
**Updating the Database based on the Combinations of Vendor/PPL/Porg and Agreement/Item
LOOP AT it_final.
*****Begin of Changes By Pavan Ticket 648507 "D13K948908
CLEAR : s_vdatu, s_bdatu.
CONCATENATE it_final-vdatu6(4) it_final-vdatu0(2) it_final-vdatu+3(2) INTO s_vdatu.
CONCATENATE it_final-bdatu6(4) it_final-bdatu0(2) it_final-bdatu+3(2) INTO s_bdatu.
PERFORM plant_conversion USING it_final-werks.
*****End of Changes By Pavan Ticket 648507 "D13K948908
REFRESH it_eord[].
v_matnr = it_final-matnr.
**Adding preceeding Zeroes to the Material No
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = v_matnr
IMPORTING
OUTPUT = v_matnr.
**Adding preceeding Zeroes to the Vendor
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = it_final-lifnr
IMPORTING
OUTPUT = it_final-lifnr.
**Adding preceeding Zeroes to the Item
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = it_final-ebelp
IMPORTING
OUTPUT = it_final-ebelp.
TRANSLATE it_final-feskz TO UPPER CASE.
TRANSLATE it_final-notkz TO UPPER CASE.
Select the Existing Records from EORD for the Combination of Material and Plant of New Record
SELECT matnr
werks
erdat
vdatu
bdatu
lifnr
flifn
ebeln
ebelp
febel
reswk
notkz
ekorg
autet FROM eord INTO corresponding fields of TABLE it_eord
WHERE matnr EQ v_matnr
AND werks EQ it_final-werks.
SORT it_eord BY matnr werks vdatu bdatu erdat lifnr ekorg reswk ebeln ebelp.
IF sy-subrc EQ 0.
LOOP AT it_eord.
If the Combination of Old Records Vendor/PPL/Porg is same and Agreement/Item
is also same then delete the Old Record and Upload the New Record
IF it_eord-MATNR = V_MATNR AND
it_eord-WERKS = IT_FINAL-WERKS AND
it_eord-LIFNR = IT_FINAL-LIFNR AND
it_eord-EKORG = IT_FINAL-EKORG AND
it_eord-RESWK = IT_FINAL-RESWK AND
it_eord-EBELN = IT_FINAL-EBELN AND
it_eord-EBELP = IT_FINAL-EBELP.
*****Begin of Changes By Pavan Ticket 648507 "D13K948908
IF s_vdatu GT it_eord-bdatu OR s_bdatu LT it_eord-vdatu.
ELSE.
*****End of Changes By Pavan Ticket 648507 "D13K948908
v_tabix = sy-tabix.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0200'.
PERFORM bdc_field USING : 'EORD-MATNR' it_final-matnr,
'EORD-WERKS' it_final-WERKS,
'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0205'.
CONCATENATE 'RM06W-SELKZ(' v_tabix ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam 'X'.
PERFORM bdc_field USING 'BDC_OKCODE' '=LOES'.
PERFORM bdc_dynpro USING 'SAPLSPO1' '0200'.
PERFORM bdc_field USING 'BDC_OKCODE' '=YES'.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0205'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
ENDIF.
ELSE.
If the Combination of Old Records Vendor/PPL/Porg is same and Agreement/Item
is different, if the FIX of the Existing one is X and also the FIX of the New one
is X then deselect the FIX of the Old one, if the MRP of the Old one is 1 and also
the MRP of the New one is 1 then delete the MRP of the Old one, if the FIX and MRP
of the Old one is X,1 and if it is same for the new one also, then delete the FIX
and MRP of the Old one and insert the new one also
IF it_eord-lifnr = it_final-lifnr AND
it_eord-ekorg = it_final-ekorg AND
it_eord-reswk = it_final-reswk AND
it_eord-ebeln NE '' AND it_final-ebeln NE ''.
IF it_eord-ebeln NE it_final-ebeln OR it_eord-ebelp NE it_final-ebelp.
IF it_eord-febel EQ 'X' OR it_eord-autet EQ '1'.
v_tabix = sy-tabix.
IF it_final-feskz = 'X' AND it_final-autet = '1'.
it_eord-febel = ''.
it_eord-autet = ''.
*****Begin of Changes By Pavan Ticket 648507 "D13K948908
IF s_vdatu GT it_eord-bdatu OR s_bdatu LT it_eord-vdatu.
ELSE.
*****End of Changes By Pavan Ticket 648507 "D13K948908
PERFORM bdc_dynpro USING 'SAPLMEOR' '0200'.
PERFORM bdc_field USING : 'EORD-MATNR' it_final-matnr,
'EORD-WERKS' it_final-WERKS,
'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0205'.
CONCATENATE 'RM06W-FESKZ(' v_tabix ')' INTO v_fnam.
PERFORM bdc_field1 USING : v_fnam SPACE.
CONCATENATE 'EORD-AUTET(' v_tabix ')' INTO v_fnam.
PERFORM bdc_field1 USING : v_fnam SPACE.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
ENDIF.
ELSEIF
it_final-feskz = 'X'.
it_eord-febel = ''.
*****Begin of Changes By Pavan Ticket 648507 "D13K948908
IF s_vdatu GT it_eord-bdatu OR s_bdatu LT it_eord-vdatu.
ELSE.
*****End of Changes By Pavan Ticket 648507 "D13K948908
PERFORM bdc_dynpro USING 'SAPLMEOR' '0200'.
PERFORM bdc_field USING : 'EORD-MATNR' it_final-matnr,
'EORD-WERKS' it_final-WERKS,
'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0205'.
CONCATENATE 'RM06W-FESKZ(' v_tabix ')' INTO v_fnam.
PERFORM bdc_field1 USING : v_fnam SPACE.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
ENDIF.
ELSEIF
it_final-autet = '1'.
it_eord-autet = ''.
*****Begin of Changes By Pavan Ticket 648507 "D13K948908
IF s_vdatu GT it_eord-bdatu OR s_bdatu LT it_eord-vdatu.
ELSE.
*****End of Changes By Pavan Ticket 648507 "D13K948908
PERFORM bdc_dynpro USING 'SAPLMEOR' '0200'.
PERFORM bdc_field USING : 'EORD-MATNR' it_final-matnr,
'EORD-WERKS' it_final-WERKS,
'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0205'.
CONCATENATE 'EORD-AUTET(' v_tabix ')' INTO v_fnam.
PERFORM bdc_field1 USING : v_fnam SPACE.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
CLEAR it_eord.
IF NOT it_bdcdata[] IS INITIAL.
CALL TRANSACTION 'ME01' USING it_bdcdata
OPTIONS FROM it_ctu_params.
REFRESH it_bdcdata[].
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
CLEAR : v_matnr, it_final.
ENDLOOP.
REFRESH : it_eord[].
FREE it_eord.
**Updating the Records of Upload File into ME01
LOOP AT it_final INTO wa_final.
it_final = wa_final.
CLEAR v_matnr.
TRANSLATE it_final-feskz TO UPPER CASE.
TRANSLATE it_final-notkz TO UPPER CASE.
*****Begin of Changes By Pavan Ticket 648507 "D13K948908
PERFORM plant_conversion USING wa_final-werks.
*****End of Changes By Pavan Ticket 648507 "D13K948908
**To convert the Valid From and Valid To into User's Format
CASE v_datfm.
WHEN 1.
CONCATENATE it_final-vdatu3(2) '.' it_final-vdatu0(2) '.' it_final-vdatu+6(4) INTO it_final-vdatu.
CONCATENATE it_final-bdatu3(2) '.' it_final-bdatu0(2) '.' it_final-bdatu+6(4) INTO it_final-bdatu.
WHEN 2.
CONCATENATE it_final-vdatu0(2) '/' it_final-vdatu3(2) '/' it_final-vdatu+6(4) INTO it_final-vdatu.
CONCATENATE it_final-bdatu0(2) '/' it_final-bdatu3(2) '/' it_final-bdatu+6(4) INTO it_final-bdatu.
WHEN 3.
CONCATENATE it_final-vdatu0(2) '-' it_final-vdatu3(2) '-' it_final-vdatu+6(4) INTO it_final-vdatu.
CONCATENATE it_final-bdatu0(2) '-' it_final-bdatu3(2) '-' it_final-bdatu+6(4) INTO it_final-bdatu.
WHEN 4.
CONCATENATE it_final-vdatu6(4) '.' it_final-vdatu0(2) '.' it_final-vdatu+3(2) INTO it_final-vdatu.
CONCATENATE it_final-bdatu6(4) '.' it_final-bdatu0(2) '.' it_final-bdatu+3(2) INTO it_final-bdatu.
WHEN 5.
CONCATENATE it_final-vdatu6(4) '/' it_final-vdatu0(2) '/' it_final-vdatu+3(2) INTO it_final-vdatu.
CONCATENATE it_final-bdatu6(4) '/' it_final-bdatu0(2) '/' it_final-bdatu+3(2) INTO it_final-bdatu.
WHEN 6.
CONCATENATE it_final-vdatu6(4) '-' it_final-vdatu0(2) '-' it_final-vdatu+3(2) INTO it_final-vdatu.
CONCATENATE it_final-bdatu6(4) '-' it_final-bdatu0(2) '-' it_final-bdatu+3(2) INTO it_final-bdatu.
***End of Changes by Pavan "D13K945062
WHEN 'A'.
CONCATENATE it_final-vdatu6(4) '/' it_final-vdatu3(2) '/' it_final-vdatu+0(2) INTO it_final-vdatu.
CONCATENATE it_final-bdatu6(4) '.' it_final-bdatu3(2) '.' it_final-bdatu+0(2) INTO it_final-bdatu.
WHEN 'B'.
CONCATENATE it_final-vdatu6(4) '/' it_final-vdatu3(2) '/' it_final-vdatu+0(2) INTO it_final-vdatu.
CONCATENATE it_final-bdatu6(4) '.' it_final-bdatu3(2) '.' it_final-bdatu+0(2) INTO it_final-bdatu.
WHEN 'C'.
CONCATENATE it_final-vdatu6(4) '/' it_final-vdatu3(2) '/' it_final-vdatu+0(2) INTO it_final-vdatu.
CONCATENATE it_final-bdatu6(4) '.' it_final-bdatu3(2) '.' it_final-bdatu+0(2) INTO it_final-bdatu.
ENDCASE.
AT NEW werks.
CLEAR s_count.
REFRESH : it_bdcdata[], it_eord1[].
PERFORM bdc_dynpro USING 'SAPLMEOR' '0200'.
PERFORM bdc_field USING : 'EORD-MATNR' it_final-matnr,
'EORD-WERKS' it_final-WERKS,
'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0205'.
**Adding preceeding Zeroes to the Material No
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = it_final-matnr
IMPORTING
OUTPUT = v_matnr.
**To know the Number of records in EORD after Updating with new records
SELECT vdatu
bdatu FROM EORD
INTO TABLE it_eord1
WHERE matnr = v_matnr
AND werks = it_final-werks.
DESCRIBE TABLE it_eord1 LINES v_eord_row.
s_count = v_eord_row + 1.
ENDAT.
CONCATENATE 'EORD-VDATU(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-VDATU.
CONCATENATE 'EORD-BDATU(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-BDATU.
CONCATENATE 'EORD-EKORG(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-EKORG.
CONCATENATE 'EORD-LIFNR(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-LIFNR.
CONCATENATE 'EORD-RESWK(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-RESWK.
CONCATENATE 'EORD-EBELN(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-EBELN.
CONCATENATE 'EORD-EBELP(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-EBELP.
CONCATENATE 'RM06W-FESKZ(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-FESKZ.
CONCATENATE 'EORD-NOTKZ(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-NOTKZ.
CONCATENATE 'EORD-AUTET(' s_count ')' INTO v_fnam.
PERFORM bdc_field USING : v_fnam it_final-AUTET.
AT END OF werks.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
REFRESH it_messtab[].
CALL TRANSACTION 'ME01' USING it_bdcdata
OPTIONS FROM it_ctu_params
MODE 'A'
UPDATE 'L'
MESSAGES INTO it_messtab.
IF SY-SUBRC NE 0.
it_err_rec-matnr = it_final-matnr.
it_err_rec-werks = it_final-werks.
it_err_rec-vdatu = it_final-vdatu.
it_err_rec-bdatu = it_final-bdatu.
it_err_rec-lifnr = it_final-lifnr.
it_err_rec-ekorg = it_final-ekorg.
it_err_rec-reswk = it_final-reswk.
it_err_rec-ebeln = it_final-ebeln.
it_err_rec-ebelp = it_final-ebelp.
it_err_rec-feskz = it_final-feskz.
it_err_rec-notkz = it_final-notkz.
it_err_rec-autet = it_final-autet.
APPEND it_err_rec.
CLEAR it_err_rec.
PERFORM format_message.
ENDIF.
ENDAT.
ENDLOOP.
**To Upload the Error Records into another Excel File
IF NOT it_err_rec[] IS INITIAL.
PERFORM errors_file.
DESCRIBE TABLE it_err_rec LINES v_err_rec.
v_errors = v_err_rec - 1.
ELSE.
v_errors = 0.
ENDIF.
v_updated = v_lines - v_errors.
WRITE : /2 'RUN DATE :' color COL_NORMAL, 20 sy-datum,
/2 'RUN TIME :' color COL_NORMAL, 20 sy-uzeit.
SKIP 2.
WRITE : /2 'FILE PATH :' color COL_NORMAL, 20 p_fname.
SKIP 2.
WRITE : /2 'RESULTS' color COL_NORMAL.
SKIP.
WRITE : /2 'Number of Rows in the Upload File :' color COL_NORMAL, v_lines,
/2 'Number of Rows Updated :' color COL_NORMAL, v_updated,
/2 'Number of Error Records :' color COL_NORMAL, v_errors.
IF it_errmsg[] IS NOT INITIAL.
SKIP 2.
WRITE : /2 'Details of the Error Records' color COL_NORMAL.
SKIP.
ULINE.
FORMAT COLOR COL_NORMAL.
WRITE : /2 'Material',
22 'Plant',
28 'Valid From',
40 'Valid To',
52 'Vendor',
64 'Porg',
70 'PPL',
76 'Agreement',
88 'Item',
94 'Fix',
98 'Blk',
102 'MRP',
106 'Err. Description'.
FORMAT COLOR OFF.
ULINE.
LOOP AT it_errmsg.
AT NEW autet.
WRITE : /2 it_errmsg-matnr,
22 it_errmsg-werks,
28 it_errmsg-vdatu,
40 it_errmsg-bdatu,
52 it_errmsg-lifnr,
64 it_errmsg-ekorg,
70 it_errmsg-reswk,
76 it_errmsg-ebeln,
88 it_errmsg-ebelp,
94 it_errmsg-feskz,
98 it_errmsg-notkz,
102 it_errmsg-autet.
ENDAT.
WRITE 106 it_errmsg-messg.
ENDLOOP.
ENDIF.
E N D O F S E L E C T I O N *
END-OF-SELECTION.
*& Form file_get
Selects the File Name and Path
FORM file_get .
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
PROGRAM_NAME = v_repid
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = p_fname
CHANGING
FILE_NAME = p_fname
EXCEPTIONS
MASK_TOO_LONG = 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.
ENDIF.
ENDFORM. " file_get
*& Form upload_xcel
Uploading data to an Internal Table
FORM upload_xcel .
DATA: BEGIN OF it_intern OCCURS 0.
INCLUDE STRUCTURE ALSMEX_TABLINE. " Rows for Table with Excel Data
DATA: END OF it_intern.
DATA v_no_rows TYPE i VALUE 9999.
FIELD-SYMBOLS : <fs1>.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FNAME
I_BEGIN_COL = c_1
I_BEGIN_ROW = c_1
I_END_COL = c_12
I_END_ROW = v_no_rows
TABLES
INTERN = it_intern
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3.
IF SY-SUBRC NE 0.
MESSAGE text-016 TYPE 'I'.
ENDIF.
LOOP AT it_intern.
ASSIGN COMPONENT it_intern-col OF STRUCTURE
it_final TO <fs1>.
IF sy-subrc NE 0.
EXIT.
ENDIF.
<fs1> = it_intern-value.
AT END OF row.
APPEND it_final.
CLEAR it_final.
ENDAT.
Endloop.
FREE it_intern.
***To Delete the Headings from the Internal Table.
DELETE it_final WHERE matnr CA 'MATmat'.
ENDFORM. " upload_xcel
*& Form bdc_dynpro
Populate Screen Name
FORM bdc_dynpro USING PROGRAM
DYNPRO.
CLEAR it_bdcdata.
it_bdcdata-PROGRAM = PROGRAM.
it_bdcdata-DYNPRO = DYNPRO.
it_bdcdata-DYNBEGIN = 'X'.
APPEND it_bdcdata.
ENDFORM. " bdc_dynpro
*& Form bdc_field
Populate Screen Field
FORM bdc_field USING FNAM
FVAL.
IF FVAL <> SPACE.
CLEAR it_bdcdata.
it_bdcdata-FNAM = FNAM.
it_bdcdata-FVAL = FVAL.
APPEND it_bdcdata.
ENDIF.
ENDFORM. " bdc_field
*& Form bdc_field
Populate Screen Field
FORM bdc_field1 USING FNAM
FVAL.
CLEAR it_bdcdata.
it_bdcdata-FNAM = FNAM.
it_bdcdata-FVAL = FVAL.
APPEND it_bdcdata.
ENDFORM. " bdc_field
*& Form errors_file
Downloads the Error Records
FORM errors_file .
DATA : l_fname TYPE string,
l_var1 TYPE string,
l_var2 TYPE string.
l_fname = p_fname.
SPLIT l_fname at '.' into l_var1 l_var2.
CONCATENATE l_var1 '_error.' l_var2 INTO l_fname.
**To Write the Headings in the Excel File
it_err_rec-matnr = text-003.
it_err_rec-werks = text-004.
it_err_rec-vdatu = text-005.
it_err_rec-bdatu = text-006.
it_err_rec-lifnr = text-007.
it_err_rec-ekorg = text-008.
it_err_rec-reswk = text-009.
it_err_rec-ebeln = text-010.
it_err_rec-ebelp = text-011.
it_err_rec-feskz = text-012.
it_err_rec-notkz = text-013.
it_err_rec-autet = text-014.
INSERT it_err_rec INDEX 1.
CLEAR it_err_rec.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = l_fname
FILETYPE = 'DAT'
APPEND = ' '
CONFIRM_OVERWRITE = ' '
TABLES
DATA_TAB = it_err_rec
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC EQ 0.
MESSAGE text-015 TYPE 'S'.
ENDIF.
ENDFORM. " errors_file
*& Form format_message
To Write the Error Records
FORM format_message .
IF NOT it_messtab[] IS INITIAl.
LOOP AT it_messtab.
IF it_messtab-msgtyp = 'E'.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = it_messtab-msgid
LANG = sy-langu
NO = it_messtab-msgnr
V1 = it_messtab-msgv1
V2 = it_messtab-msgv2
V3 = it_messtab-msgv3
V4 = it_messtab-msgv4
IMPORTING
MSG = v_message
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC EQ 0.
it_errmsg-matnr = it_final-matnr.
it_errmsg-werks = it_final-werks.
it_errmsg-vdatu = it_final-vdatu.
it_errmsg-bdatu = it_final-bdatu.
it_errmsg-ekorg = it_final-ekorg.
it_errmsg-lifnr = it_final-lifnr.
it_errmsg-reswk = it_final-reswk.
it_errmsg-ebeln = it_final-ebeln.
it_errmsg-ebelp = it_final-ebelp.
it_errmsg-feskz = it_final-feskz.
it_errmsg-notkz = it_final-notkz.
it_errmsg-autet = it_final-autet.
it_errmsg-messg = v_message.
APPEND it_errmsg.
CLEAR : it_errmsg, v_message.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " format_message
*& Form plant_conversion
Adding preceeding Zeroes
-->P_IT_FINAL_WERKS text
FORM plant_conversion USING P_VAR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = P_VAR
IMPORTING
OUTPUT = P_VAR.
ENDFORM. " plant_conversion
Hope it helps!!!
Regards,
Pavan -
WD Exercise : Validating and Non-Validating Actions
Hi Experts!
I am doing the validating and non-validating exercise based on the SDN document<a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webdynpro/wd%20java/wd%20tutorials/web%20dynpro%20sample%20applications%20and%20tutorials.htm#6">here</a>.
When I download the already done application, it works quite well. However, when I try to make it on my own, I encountered following problems:
1. I could not write labels as [married since] on the radio button.
2. I could not do the data mapping from the view controller to the component controller.
As a result I have not been able to deploy the application.
The <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webdynpro/wd%20java/wd%20tutorials/using%20validating%20and%20non-validating%20actions.pdf">document</a> I am refering to, has a explanation of the application contents.
But does anybody know if there is a manual for creating this application?
Many thanks
Regards,
SudeepHi
For your problem
1.I could not write labels as [married since] on the radio button
Use the <b>text</b> property to assign labels to radio button
Check the sample whether its using radiobutton group?
2.I could not do the data mapping from the view controller to the component controller
You can only map from component controller to view controller.
Regards
Ayyapparaj -
What is the difference between organisation payment method and Assignment payment method?
What is the difference between organisation payment method and Assignment payment method?
As i am a new bie, i am curious to know this though it might sound a silly question.
Thank you,
KutonYou can create an Organization payment method of any Payment type(Cash, Check, BACS, NACHA etc) under the same country.
All these will be valid payment methods on the payroll description form.
And you can even attach these to a person.
In which case you will have a Base currency (say USD) and payment currency (say GBP).
These cases are not normal and only used by people who use a single BG for paying employees in 3-4 countries.
So, unless you need to pay in different currencies, do not use it.
Cheers,
Vignesh -
PO Error "Please specify valid account assignment"
Hi,
I have a PO , when i undelete service PO and reorder getting erro saying that 'Purchase order
65XXXXXXXX: Instance 650XXXXXX of object type Purchase Order could not
be changed' and Please specify valid account assignment
Can any pne suggest what are the setting i need to check
Thanks
JairajHi,
Thanks for reply,
There is no follow on document created, this is a service purchase order and after deleting 3 line items and again undelete the PO goes to error in process saying that" please assign valid account assignment"
Backend application error
EBP PO, and have extended classic scenario
i have found some notes not sure is this applicable 1090613
Regards,
jairaj
Edited by: Jairaj B.Mahaling on Dec 16, 2008 7:33 PM -
Please specify a valid account assignment
Hi Friends,
This issue is in Extended classic scenario..Some times, we are getting the following error message in RZ20.
- Pease specify a valid account assignment
- Transfer failed
- PO Instance of the object type PO could not be changed
We unable replicate this issue in Quality system...
This is issue is in changing Purchase Order...Here user has changed the currency from SEK to EUR
Please help on this
Thanks
ShriniHi Shrinivas,
Please advice how did you resolve this issue.
We have similar issue where the PO was initially created in GBP currency and later they changed the currency to EUR in SRM.
Now they want to change the corresponding net price to the converted EUR value from e.g. 95GBP to 101 EUR.
At this point we get the error message "Please specify a valid account assignment".....
thanks in advance for your response.
Vinod
Edited by: Vinod FERNANDEZ on Aug 1, 2011 9:26 PM -
Running Windows XP service pack 3. Updated Firefox from 8.0 to 9.0. Now when Firefox opens "The URL is not valid and cannot be loaded" is displayed in a window and no home page appears. What's wrong?
That issue can be caused by an extension that isn't working properly.
Start Firefox in <u>[[Safe Mode]]</u> to check if one of the extensions or if hardware acceleration is causing the problem (switch to the DEFAULT theme: Firefox (Tools) > Add-ons > Appearance/Themes).
*Don't make any changes on the Safe mode start window.
*https://support.mozilla.com/kb/Safe+Mode
*https://support.mozilla.com/kb/Troubleshooting+extensions+and+themes -
Why do i keep getting an Alert message saying "The URL is not valid and cannot be loaded "?
Why do i keep getting an Alert message saying "The URL is not valid and cannot be loaded "?
This happens a lot regardless of the web page. I continually have to restart FF and it persists stillStart Firefox in [[Safe Mode]] to check if one of the add-ons is causing the problem (switch to the DEFAULT theme: Tools > Add-ons > Themes).
* Don't make any changes on the Safe mode start window.
See:
* [[Troubleshooting extensions and themes]]
* [[Troubleshooting plugins]]
If it does work in Safe-mode then disable all extensions and then try to find which is causing it by enabling one at a time until the problem reappears.
* Use "Disable all add-ons" on the [[Safe mode]] start window to disable all extensions.
* Close and restart Firefox after each change via "File > Exit" (Mac: "Firefox > Quit"; Linux: "File > Quit") -
The URL is not valid and cannot be loaded
seems like maybe firefox mishandles untrusted certificates?
It gives error: Alert The URL is not valid and cannot be loaded.
example:
https://notes.corp.cat.com/
other browsers can load this URL just fine. When I visit it in Firefox, I get the error in a simple little message box with a yellow triangle exclamation point, titled "Alert".
ALSO.... when I click the "Home" button in firefox, I get the error, and the home page does not load. Currently the home page is set to "Mozilla Firefox Start Page."
changing the home page to: http://www.google.com/ allows the home page button to work normally.
restoring the home page to default brings the error behavior back when clicking the home button.
changing the home page to: https://notes.corp.cat.com/ produces the same error, just like when I manually type in an https URL with a funky security certificate.
This problem only seems to happen on secure URLs with untrusted certificates, i.e. sites that are too cheap to pay to have their certificate registered with one of the certificate vendors or however the hell that works, so as a result every time you visit their web site, your browser starts to whine that it might be a forgery or whatever.
It used to be in Firefox that I could load these pages and just specify that I want to trust the site anyway. Now firefox gives this error that doesn't allow the user to know what is really going on or what the reason for the error is. It is as if the developers decided that users are too stupid to decide if they really want to visit the site or not, so as a result Firefox is just refusing to visit any web sites where the authenticity of the certificate can't be verified? Hey, it's not a bad idea, to be honest. :-) But it's kind of annoying, because here I am, sort of smart enough to know what I'm doing, but I don't have the choice in the matter...
I restarted with all add-ons disabled and that didn't help. I don't have much installled in the way of add-ons anyway. All I have is JAVA quick starter 1.0, and Adobe Acrobat, Java development toolkit, Java platform SE, Microsoft DRM, and Windows Media Player Plug-in Dynamic Link Library. Not even Flash. All the above is disabled now that I rebooted with add-ons disabled, and I still have the issue.
thanks for any help you can provide.Please [https://bugzilla.mozilla.org/show_bug.cgi?id=713167 see this.] Installing [https://www.microsoft.com/download/en/details.aspx?id=5638 Visual C++ 2005 SP1] or the .Net Framework 3.5 SP1 may help mitigate the issue.
Maybe you are looking for
-
Not able to get the Aduit log details through webservices
Hi Team, I am trying to get the audit log details using according to Michal's PO/PI tips: Audit Logs from a native WS - new feature but i am getting following result i have used key = new MessageKey(msg.getMessageId(), msg.getMessageDirection()); -
-
Hey all. I just bought an X-Fi Platinum. I have a PS2 hooked up to the SPDIF-In plug on my I/O module (and my tv card), and I was wondering how I could get the sound from there to play on my speakers. I expected it would happen automatically, but it
-
Customizing the shipping options in the cart?
Hey Everybody, I've got a client that just ABSOLUTELY does not like the way that the "integrated" shipping options are displayed. Currently if you have USPS and FEDEX both as shipping options. A user would have select one of the two from a dropdown,
-
Disk Utility says I need to repair disk
My computer is running a little sluggish so I went into the Disk Utility and selected verify disk. I got the message below. I inserted the OS X disk but the repair disk option wasn't available. I bought the computer with Panther and got Tiger later,
-
Can't Open Premire CS6 Projects in new Premier CC
Hi, After a major equipment failure my company's IT guy re-installed the latest available version of Premier, CC. For the past year I've been using CS6, and now I'm finding I can't open previous projects. Is there a way to fix this using CC or woul