Use of BEFORE_EXPORT Method in transaction SOBJ
Hello,
My Requirement:
I have to add database table entries to my task before releasing the transport request, if my Transport task contains eCATT object type.
So I have developed a function module which adds table entries to transport task and I will add this function module to BEFORE_EXPORT method in SOBJ transaction.
My queries:
1. I have two import parameters in my FM:
a) Transport Task number
b) eCATT object name
I would like to understand how the FM import parameters are populated by BEFORE_EXPORT method.
2. Whether BEFORE_EXPORT method wil be called once for one Transport Request or once for every Task in the Transport Request.
Please let me know if you need more information.
Warm Regards,
Suresh
add a before method to display something to a user decision.
What is your requirement.
Kind regards, Rob Dielemans
Similar Messages
-
I am everytime getting the following error
Sorry! We could not complete the transaction using this payment method. Please contact support.
I have put my 2 credit card information with Microsoft. I tried calling 2 times the customer support but it was a pathetic response. In a single call I talked to 4 customer support officers and everybody passed on the call to the next without resolving the
problem, and without telling the next officer what is my issue!! they just passed on the phone call to avoid me!!
It is really frustrating that neither Microsoft is provide a good support (it was hard for them to understand my issue, in fact one of the support guy did not even know spelling of Azure.. he/she was saying it assure!!! and One of the guy told me that I
cannot use credit card outside US and Canada. then why you call yourself global???
So Microsoft you have a few things to do as your homework.
1. Your support is pathetic, frustrating and requires better people out there who know about your products, so train them first!
2. You got my 2 credit cards information which I see at subscriptions for Windows Azure, please remove both of them if you cannot provide a good support and subscription.
3. Learn from other cloud providers, AWS will otherwise kill your business.
Regards
Kajal
Kajal SinhaHi Kajal,
Sincerely apologize for this inconvenience, for billing & account issue, usually we need to contact the support team by creating a support ticket at
http://www.windowsazure.com/en-us/support/contact/. Or if that doesn't work because you don't have an active subscription you will need to contact general customer support to have them create
a support ticket for you
http://support.microsoft.com/gp/customer-service-phone-numbers?wa=wsignin1.0).
If above support channels don't work, at your convenient, could you please send an email to me: dxu at microsoft.com with kindly providing your:
Name
Email address
Phone number
We will provide help via emails. Thank you.
Best Regards,
Ming Xu
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Creation Dynamic session name using BDC session Method
Hi All,
I have one typical BDC problem. If the number of records in file are crossing 80,my bdc is giving problem .So I need to split total records into sets of 80 and submit them. So I need to create the session name dynamically, pass the data dynamically. IF you have example code or know the procedure as how to proceed kindly inform me
Regards
PraveenHi Rob,
Please find my code below..
Part of the variables are in Polish since the original developer is a polish guy..
Praveen
Code.
*& Report ZCO_I025_WSKAZNIKI_STAT_DEV *
*& Interfejs wczytywania wskaźników statystycznych *
REPORT zco_i025_wskazniki_stat_dev .
TYPES:
BEGIN OF l_tab_dane,
indic LIKE rk23f-stagr,
quant LIKE rk23f-mbgbtr,
mpk LIKE rk23f-ekostl,
order LIKE rk23f-eaufnr,
text LIKE rk23f-sgtxt,
END OF l_tab_dane.
DATA:
it_excel TYPE TABLE OF alsmex_tabline,
wa_excel TYPE alsmex_tabline,
it_data TYPE TABLE OF l_tab_dane,
wa_data TYPE l_tab_dane,
error TYPE C,
msg TYPE string.
DATA:
iv_pole TYPE string,
ddatum(10),
kdatum(10),
*Inserted By satyam Developer
filelist TYPE filetable,
rc TYPE i.
DATA: BEGIN OF bdctab OCCURS 5.
INCLUDE STRUCTURE bdcdata.
DATA: END OF bdctab.
SELECTION-SCREEN BEGIN OF BLOCK p1 WITH FRAME TITLE text-001.
PARAMETERS:
p_zakla LIKE tka01-kokrs DEFAULT '1000',
p_ddate LIKE sy-datum DEFAULT sy-datum,
p_kdate LIKE sy-datum DEFAULT sy-datum.
SELECTION-SCREEN ULINE.
PARAMETERS:
p_fname LIKE rlgrap-filename. " DEFAULT 'd:dane.xls'.
SELECTION-SCREEN END OF BLOCK p1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
file_filter = cl_gui_frontend_services=>filetype_excel
multiselection = 'X'
CHANGING
file_table = filelist
rc = rc.
IF LINES( filelist ) IS INITIAL.
EXIT.
ENDIF.
READ TABLE filelist INDEX 1 INTO p_fname.
START-OF-SELECTION.
AUTHORITY-CHECK OBJECT 'TKA01'
ID 'KOKRS' FIELD p_zakla.
CONCATENATE p_ddate6(2) '.' p_ddate4(2) '.' p_ddate(4) INTO ddatum.
CONCATENATE p_kdate6(2) '.' p_kdate4(2) '.' p_kdate(4) INTO kdatum.
error = '0'.
PERFORM wczytaj_dane.
IF error = '0'.
PERFORM utworz_sesje.
PERFORM wprowadz_dane.
PERFORM zamknij_sesje. "comment by prav
ENDIF.
PERFORM zamknij_sesje. "add by prav
IF error = '1'.
WRITE: msg, /.
ENDIF.
WRITE: 'Wykonano', /.
*& Form wczytaj_dane
text
FORM wczytaj_dane.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_fname
i_begin_col = 1
i_begin_row = 1
i_end_col = 8
i_end_row = 65000
TABLES
intern = it_excel
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
WRITE: / 'Bład importu pliku wejsciowego: ', p_fname, ' - ',
sy-subrc.
ELSE.
SORT it_excel BY row col.
LOOP AT it_excel INTO wa_excel.
IF wa_excel-row = 1.
CONTINUE.
ENDIF.
iv_pole = wa_excel-value.
CASE wa_excel-col.
WHEN 1. wa_data-indic = iv_pole.
WHEN 2.
REPLACE ',' WITH '.' INTO iv_pole.
wa_data-quant = iv_pole.
WHEN 3. wa_data-mpk = iv_pole.
WHEN 4. wa_data-order = iv_pole.
WHEN 5. wa_data-text = iv_pole.
ENDCASE.
AT END OF row.
IF wa_data-mpk IS INITIAL AND wa_data-order IS INITIAL.
error = '1'.
WRITE:
'Musi być podane Stanowisko kosztów lub Zlecenie wewnętrzne. Rekord: ',
wa_excel-row, /.
EXIT.
ENDIF.
IF wa_data-mpk IS NOT INITIAL AND wa_data-order IS NOT INITIAL.
error = '1'.
WRITE:
'Musi być podane Stanowisko kosztów lub Zlecenie wewnętrzne. Rekord: ',
wa_excel-row, /.
EXIT.
ENDIF.
IF wa_data-indic IS INITIAL.
error = '1'.
WRITE: 'Brak identyfikatora wskaźnika. Rekord: ', wa_excel-row
EXIT.
ENDIF.
IF wa_data-quant IS INITIAL.
error = '1'.
WRITE: 'Brak informacji o ilości. Rekord: ', wa_excel-row, /.
EXIT.
ENDIF.
APPEND wa_data TO it_data.
CLEAR wa_data.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. "wczytaj_dane
*& Form wprowadz_dane
text
FORM wprowadz_dane.
DATA:
licznik TYPE i,
l_txt TYPE string,
pole(30) TYPE c,
liczba(15) TYPE c.
LOOP AT it_data into wa_data.
PERFORM bdc_dynpro USING 'SAPLSPO4' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR' 'SVALD-VALUE(01)'.
PERFORM bdc_field USING 'BDC_OKCODE' '=FURT'.
PERFORM bdc_field USING 'SVALD-VALUE(01)' p_zakla.
PERFORM bdc_dynpro USING 'SAPLK23F1' '1200'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'COHEADER-SEND_REC_REL' '03SAP'.
PERFORM bdc_field USING 'RK23F-STATUS' 'L'.
PERFORM bdc_field USING 'COHEADER-BLDAT' ddatum.
PERFORM bdc_field USING 'COHEADER-BUDAT' kdatum.
PERFORM bdc_field USING 'BDC_CURSOR' 'EKOSTL(1)'.
licznik = 0.
LOOP AT it_data into wa_data.
ADD 1 TO licznik.
l_txt = licznik.
CONCATENATE 'EL4(' l_txt ')' INTO pole.
condense pole no-gaps.
PERFORM bdc_field USING pole wa_data-indic.
CONCATENATE 'ELR1(' l_txt ')' INTO pole.
condense pole no-gaps.
liczba = wa_data-quant.
if liczba < 0.
shift liczba circular left up to '-'.
endif.
condense liczba no-gaps.
PERFORM bdc_field USING pole liczba.
IF NOT wa_data-mpk IS INITIAL.
CONCATENATE 'EL2(' l_txt ')' INTO pole.
condense pole no-gaps.
PERFORM bdc_field USING pole wa_data-mpk.
ENDIF.
IF NOT wa_data-order IS INITIAL.
CONCATENATE 'EL3(' l_txt ')' INTO pole.
condense pole no-gaps.
PERFORM bdc_field USING pole wa_data-order.
ENDIF.
CONCATENATE 'EL8(' l_txt ')' INTO pole.
condense pole no-gaps.
PERFORM bdc_field USING pole wa_data-text.
call transaction 'KB31N' using bdctab mode 'A'.
refresh:bdctab.
clear bdctab.
ENDLOOP.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = 'KB31N'
TABLES
dynprotab = bdctab
EXCEPTIONS
internal_error = 1
not_open = 2
queue_error = 3
tcode_invalid = 4
printing_invalid = 5
posting_invalid = 6
OTHERS = 7.
IF sy-subrc <> 0.
WRITE: / text-010 .
ENDIF.
call transaction 'KB31N' using bdctab mode 'A'.
REFRESH bdctab.
clear:bdctab. "by praveen
ENDFORM. "wprowadz_dane
*& Form bdc_dynpro
text
-->PROGRAM text
-->DYNPRO text
FORM bdc_dynpro USING program dynpro.
CLEAR bdctab.
MOVE:
program TO bdctab-program,
dynpro TO bdctab-dynpro,
'X' TO bdctab-dynbegin.
APPEND bdctab.
ENDFORM. "bdc_dynpro
*& Form bdc_field
text
-->POLE text
-->WARTOSC text
FORM bdc_field USING pole wartosc.
CLEAR bdctab.
MOVE:
pole TO bdctab-fnam,
wartosc TO bdctab-fval.
APPEND bdctab.
ENDFORM. "bdc_field
*& Form utworz_sesje
text
FORM utworz_sesje.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = 'WSKASTAT'
user = sy-uname
keep = 'X'.
**begin of praveen
*if sy-subrc ne 0.
write 'hai'.
endif.
**end of praveen
ENDFORM. "utworz_sesje
*& Form zamknij_sesje
text
FORM zamknij_sesje.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
IF sy-subrc NE 0.
WRITE: /, 'Bład podczas zamykania sesji'.
EXIT.
ENDIF.
ENDFORM. "zamknij_sesje -
How to upload data for me01 using lsmw recording method
*dear expert please tell me the complete procedure for how to upload data in me01 transaction using lsmw recording method.
Moderator Message: Duplicate post locked.
Edited by: Vinod Kumar on May 8, 2011 7:56 PMHi,
To be honest I don't understand your question. When You execute LSMW and create project, then all steps are shown in a very clear way with good description. With which one you have problems?
Best regards
Marcin Cholewczuk -
Modify existing data using LSMW IDoc method
Hi experts,
I am trying to transfer activity data from R/3 system to CRM using Idoc LSMW method.
It working fine that LSMW creates new activities in CRM system, & there is a check in the conversion code that if the activity we are trying to transfer exists in CRM system it will skip that transaction.
Now the requirement is that we don't want to skip, if the activity is already present in CRM system than it should modify the existing.
IDOC used : CRMXIF_ORDER_SAVE_M02
Msg type used: CRMXIF_ORDER_SAVE
Note:
LSMW will not create activities in the system; SXDA data transfer workbench will be used to process the data in CRM system. SXDA project has following two steps:
- Merge files u2013 This step uses a custom function module to merge one or more than one files and creates a file which is required for LSMW.
- Convert the data u2013 This step uses LSMW as the conversion method
- Load the data u2013 This step uses the IDoc object interface
Now the doubt is that if i remove the check than it will create an another activity with same activity no. or modify the existing one, or is there another way to modify the existing activity in CRM system?
Waiting for a qiuck response.
Thanks
d_marcoHI,
Thanks for your quick valuable response.
I have a doubt, we are transferring activities from R/3 system to CRM system, & these activities are maintained in R/3 application system in the form of text files
Now the question is if the text file contains 10 activities( transactions) with there header, partner & item details & from these 10 activities some are new & some are already present in CRM system, than will it be possible to create the new ones & update the existing ones withe single LSMW project run.
I think that we can put a check in the conversion code where transaction begins that if the particular activity( transaction) already present in CRM system than set a flag as "U" to update, if activities are new than set it as "I" to insert & than pass this flag in the conversion rule to the field "OBJECT_TASK" of IDOC structure
or
we need to maintain text files as for update or insert separately but not for mixed task of update/insert.
Will this update/insert process also work's if we are using a copy of standard IDOC type with some custom segments & custom fields.
Thanks
d_marco -
Multiple ALV display using SALV(Factory method)...
Hello Experts,
Please provide me any examples on how to display multiple ALV
displays in a screen using SALV(Factory method).
Hope you can help me guys.
Thank you and take care!Hi Viraylab,
Kindly check the program below, this will help you..
*& Report Z101754_REPORT
REPORT z101754_report.
TABLES: zvbak_101754,zvbap_101754,mara.
TYPE-POOLS: slis.
DATA : i_fieldcat TYPE slis_t_fieldcat_alv.
DATA: FLDNAME(24).
DATA : BEGIN OF itab_zvbap OCCURS 0,
zvbeln LIKE zvbap_101754-zvbeln,
zposnr LIKE zvbap_101754-zposnr,
zmatnr LIKE zvbap_101754-zmatnr,
zbrgew LIKE zvbap_101754-zbrgew,
zgi_qty LIKE zvbap_101754-zgi_qty,
zinv_qty LIKE zvbap_101754-zinv_qty,
END OF itab_zvbap.
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-t01.
SELECT-OPTIONS : s_zvbeln FOR zvbak_101754-zvbeln,
s_zkunwe FOR zvbak_101754-zkunwe,
s_zerdat FOR zvbak_101754-zerdat,
s_zmatnr FOR zvbap_101754-zmatnr.
SELECTION-SCREEN END OF BLOCK block1.
SELECTION-SCREEN: BEGIN OF BLOCK block2 WITH FRAME TITLE t02.
PARAMETERS : invoiced AS CHECKBOX,
s_gi AS CHECKBOX .
SELECTION-SCREEN: END OF BLOCK block2.
SELECTION-SCREEN: BEGIN OF BLOCK block3 WITH FRAME TITLE t03.
PARAMETERS : alv_list RADIOBUTTON GROUP g1,
alv_grid RADIOBUTTON GROUP g1,
s_class RADIOBUTTON GROUP g1.
SELECTION-SCREEN: END OF BLOCK block3.
Screen Field Validation event
AT SELECTION-SCREEN ON s_zvbeln.
SELECT SINGLE *
FROM zvbak_101754 WHERE zvbeln IN s_zvbeln.
IF sy-subrc NE 0.
MESSAGE e000(z754).
ENDIF.
AT SELECTION-SCREEN ON s_zkunwe.
SELECT SINGLE *
FROM zvbak_101754 WHERE zkunwe IN s_zkunwe.
IF sy-subrc NE 0.
MESSAGE e001(z754).
ENDIF.
AT SELECTION-SCREEN ON s_zerdat.
SELECT SINGLE *
FROM zvbak_101754 WHERE zerdat IN s_zerdat.
IF sy-subrc NE 0.
MESSAGE e002(z754).
ENDIF.
AT SELECTION-SCREEN ON s_zmatnr.
SELECT SINGLE *
FROM zvbap_101754 WHERE zmatnr IN s_zmatnr.
IF sy-subrc NE 0.
MESSAGE e003(z754).
ENDIF.
Start-Of-Selection Event
START-OF-SELECTION.
PERFORM select-data.
End-Of-Selection Event
END-OF-SELECTION.
PERFORM display.
*& Form select-data
text
--> p1 text
<-- p2 text
FORM select-data .
SELECT zvbeln zposnr zmatnr zbrgew zgi_qty zinv_qty
INTO CORRESPONDING FIELDS OF TABLE itab_zvbap
FROM zvbap_101754
WHERE zvbeln IN s_zvbeln.
ENDFORM. " select-data3
TOP-OF-PAGE.
AT LINE-SELECTION.
FORMAT HOTSPOT.
*GET THE FIELD NAME ON LINE SELECTION
GET CURSOR FIELD FLDNAME . "value field_value.
IF FLDNAME = 'itab_zvbap-zvbeln'.
SET PARAMETER ID 'BES' FIELD itab_zvbap-zvbeln.
CALL TRANSACTION 'ZVA01_101754'.
ENDIF.
*& Form DISPLAY
text
--> p1 text
<-- p2 text
FORM display .
IF s_class ='X'.
PERFORM display_header.
LOOP AT itab_zvbap.
WRITE : / sy-vline,
itab_zvbap-zvbeln ,
13 sy-vline,
itab_zvbap-zposnr ,
30 sy-vline,
itab_zvbap-zmatnr ,
45 sy-vline,
itab_zvbap-zbrgew UNIT mara-meins ,
65 sy-vline,
itab_zvbap-zgi_qty UNIT mara-meins,
85 sy-vline,
itab_zvbap-zinv_qty UNIT mara-meins,
105 sy-vline,
/ sy-uline(105).
ENDLOOP.
ENDIF.
*& Creating the fieldcatalog.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'ITAB_ZVBAP'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = sy-repid
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = i_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF alv_list = 'X'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
i_callback_pf_status_set = ' '
i_callback_user_command = 'USER_COMMAND '
I_STRUCTURE_NAME =
IS_LAYOUT =
it_fieldcat = i_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = itab_zvbap[]
EXCEPTIONS
program_error = 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.
ENDIF.
IF alv_grid = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
i_callback_pf_status_set = ' '
i_callback_user_command = 'USER_COMMAND '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
it_fieldcat = i_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = itab_zvbap[]
EXCEPTIONS
program_error = 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.
ENDIF.
ENDFORM. " DISPLAY
*& Form display_header
text
--> p1 text
<-- p2 text
FORM display_header .
WRITE : / sy-vline,
'ORDER NO',
13 sy-vline,
'ITEM NO',
30 sy-vline,
'MATERIAL NO',
45 sy-vline,
'ORDER QTY',
65 sy-vline,
'GI QTY',
85 sy-vline,
'INVOICED QTY',
105 sy-vline,
/ sy-uline(105).
ENDFORM. " display_header
Please let me know if you have any doubt.
Regards,
Amit. -
Step by step instruction for Using LSMW Recoding method for Material Master
Guys,
Can some one explain step by step procedure for uploading the materials master data to R/3 by using LSMW Recoding method. By the time you reply I will go through the rule of uploading the data..
Thanks guys,
Dhanu.Hi,
The Legacy System Migration Workbench (LSMW) is a tool recommended by SAP that you can use to transfer data once only or periodically from legacy systems into an R/3 System.
The LSM Workbench covers the following steps:
(1)Read the legacy data from one or several files (e.g. spreadsheet tables, sequential files)
(2)Convert the data from source format to target format
(3)Import the data using standard interfaces (Batch Input, Direct Input, BAPI, IDoc).
The Steps for LSME are:
Example: Customer Master upload:
LSMW to Update Customer Master Records with Transaction Recording
Call Legacy System Migration Workbench by entering transaction code LSMW. Every conversion task is grouped together as Project / Subproject / Object structure. Create a Project called LSMW_DEMO and a Subproject as CUSTOMERS and Object as CUST_REC
Step 1: Maintain Object attributes
In this example, you will be updating the customer master records with the help of recording a transaction (XD02). Choose radio button Batch Input Recording and click on the recording overview icon to record the R/3 transaction. Enter the Recording name as XD02_REC, the description as Customer Master Updates Recording, and the transaction code as XD02.
Step 2. Maintain Source Structures
Give a name and a description to the source structure
Step 3. Maintain Source Fields
In this step, you need to list what fields are present in the source structure. The easiest way is to click on u2018Table Maintenanceu2019 icon to enter Fieldname, Type and Length for each field
Step 4: Maintain Structure Relations
Execute a step to u2018Maintain Structure Relationsu2019. Since, there is only one Source and Target Structure, the relationship is defaulted automatically.
Step 5: Maintain field mapping and conversion rules
Field RF02D-D0310 represents that you chose u2018Sales viewu2019 for the customer Master screen accordingly its value should be set to X. Keep your cursor on field RF02D-D0310 and click on Constant rule icon to choose the constant value of u2018Xu2019.
If your source file already has the field value, you choose rule u2018Source Fieldu2019.
Keep cursor on field u2018KUNNRu2019 and click on u2018Assign Source fieldu2019 icon to choose source field CUSTOMER from structure XD02S
Step 6: Maintain fixed values, translations, user-defined routines
You can also maintain re-usable translations and user-defined routines, which can be used across conversion tasks. In this case, that step is not required.
Step 7: Specify files
In this step, we define how the layout of the input file is. The input file is a [Tab] delimited with the first row as field names. It is present on my PC (local drive) as C:\XD02.txt.
Step 8: Assign files
Execute step u2018Assign Filesu2019 and the system automatically defaults the filename to the source structure.
Step 9: Read data
In this step, LSMW reads the data from the source file (from your PCu2019s local drive). You have the option to read only selected rows and convert data values to Internal format.
Step 10: Display read data
This step is optional. If required, you can review the field contents for the rows of data read.
Step 11: Convert data
This is the step that actually converts the source data (in source format) to a target format. Based on the conversion rules defined, source fields are mapped to target fields.
Step 12: Display Converted data
Again this is an optional step to view how the source data is converted to internal SAP format
Step 13: Create batch input session
Once the source data is converted in an internal format, you can create a batch session to process updates.
Step 14: Run Batch Input Session
You can execute the BDC session by Run Batch input session. Executing a batch input session is a standard SM35 transaction for managing BDC sessions. Once you have successfully executed the batch input session, the customer master records are updated in the system. You can confirm this by viewing the customer master records (XD03).
Follow the link for material master
http://www.sap123.com/showthread.php?t=98
Regards,
Biju K -
Using Direct input method(LSMW)Can I upload only 3 fields for MM01
Using Direct input method(LSMW)Can I upload only Matnr,mbrsh,mtart fields for MM01.Otherwise I have to give all the mandatory fields.?
Hello TJK,
LSMW will work in the same way as you create normal material master with the transactions, here you are giving the value through flat file and creating material master with program.
You can create only one view with LSMW but you need to give all mandatory field on that particular view, so if you have only these three field as mandatory then yes it is possible, if you have any more field mandatory addition to these fields then it will not work out, during the last step it will throw error saying "maintain the value for field XXX"
Hope this helps.
Regards
Arif Mansuri -
Upgrade WSS content DB WSS 3.0 using database attached method
i m trying to upgrade WSS content DB WSS 3.0 using database attached method. when i use stsadm command to addcontentdb getting following error. i have also run db repair command but still getting error.
[SPUtility] [DEBUG] [3/23/2015 11:41:39 PM]: File C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\sql\storeup.sql, Time out = 24595 sec
[SPManager] [ERROR] [3/23/2015 11:54:36 PM]: Upgrade [SPContentDatabase Name=WSS_Content_DB Parent=SPDatabaseServiceInstance] failed.
[SPManager] [ERROR] [3/23/2015 11:54:36 PM]: The transaction log for database 'WSS_Content_DB' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases
The transaction log for database 'WSS_Content_DB' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases
The statement has been terminated.
pls guide how to fix.
iffisounds like the database ran out of log space. did you fill the drive? does the database's log file have a hard limit?
Scott Brickey
MCTS, MCPD, MCITP
www.sbrickey.com
Strategic Data Systems - for all your SharePoint needs -
Can I use classes and methods for a maintenance view events?
Hello experts,
Instead of perform/form, can I instead use classes and methods, etc for a given maintenance view event, lets say for example I want to use event '01' which is before saving records in the database. Help would be greatly appreciated. Thanks a lot guys!Hi viraylab,
1. The architecture provided by maintenance view
for using EVENTS and our own code inside it -
It is provided using FORM/PERFORM
concept only.
2. At this stage,we cannot use classes.
3. However, inside the FORM routine,
we can write what ever we want.
We can aswell use any abap code, including
classes and methods.
(But this classes and methods won't have any
effect on the EVENT provided by maintenance view)
regards,
amit m. -
How do I use the find method to find multiple items in a single paragraph?
I am desigining a script to find any instances where ctrl+b and ctrl+i are applied to body text and then replace those character format overrides with Italic or Bold chartag. Here's what the script is supposed to do:
put the find method in a while loop that searches for character format overrides.
If a character format override is found, pass the text range returned by the find method and the CharPropsChange flag to the GetTextForRange method.
Use a boolean compare between the idata of the text item to the character angle and character weight constants.
Whichever boolean evaluates to true, then use the SetTextProp method to set properties of the text range to the properties of the italic or bold character tag.
This script does work on the first character format override found however it ignores any other overrides in the same paragraph. The cause of this is that the while loop updates the text loc that the find method uses to the next paragraph in flow. I suspect that i need to add an inner loop that goes through all the text in a single paragraph, where at teach iteration the text loc used by the find method is based on the same paragraph but the offset is modified. I am just not sure how to do that.
function removeOverrides (pDoc)
var vDocStart = pDoc.MainFlowInDoc.FirstTextFrameInFlow.FirstPgf;
var vBoldFmt=getCharFmt (pDoc, 'Bold')
var vItalicFmt=getCharFmt (pDoc, 'Italic')
initFA_errno ();
while (FA_errno==Constants.FE_Success)
var vTextLoc = new TextLoc(vDocStart,0);
var vFindParams=findOverrideParams (pDoc);
var vTextRange=pDoc.Find(vTextLoc,vFindParams);
if (vTextRange.beg.obj.ObjectValid())
var vTextItems=pDoc.GetTextForRange (vTextRange, Constants.FTI_CharPropsChange)
if (vTextItems.length==!0 )
if (vTextItems[0].idata==Constants.FTF_WEIGHT)
pDoc.SetTextProps (vTextRange, vBoldFmt.GetProps())
if (vTextItems[0].idata==Constants.FTF_ANGLE)
pDoc.SetTextProps (vTextRange, vItalicFmt.GetProps())
} else (Log (vLogFileName, '\nERROR: No items were found in the text format array but format override was found: '+pDoc.Name))
vDocStart=vDocStart.NextPgfInFlow;
function findOverrideParams (pDoc)
var vFindParams = AllocatePropVals(1);
vFindParams[0].propIdent.num = Constants.FS_FindObject;
vFindParams[0].propVal.valType = Constants.FT_Integer;
vFindParams[0].propVal.ival = Constants.FV_FindCharacterFormatOverride;
return vFindParams;Hi Rick,
Well, following up on the previous posting, I actually did figure out how to make it work but it seems rather inefficient. I can insert a new paragraph right after the paragraph that has the table anchor but when i cut the table, i also cut the paragraph i just created. So to get around that, I create two paragraphs, so that there will be one paragraph left after i do the cut and that is the paragraph that I paste the table into. Once the table is pasted into the new paragraph, I delete the other paragraph that I created.
Here's the updated code from the for loop:
var vTbl = vDoc.GetUniqueObject(Constants.FO_Tbl, vTextItems[i].obj.Unique);
var vAnchorPgf=vDoc.NewSeriesPgf (vTbl.TextLoc.obj)
var vAnchorPgf2=vDoc.NewSeriesPgf (vAnchorPgf);
var vAnchorTextLoc=new TextLoc (vAnchorPgf2, 0);
var vTblTextRange=new TextRange ();
vTblTextRange.beg.obj=vTbl.TextLoc.obj;
vTblTextRange.beg.offset = vTbl.TextLoc.offset;
vTblTextRange.end.obj=vTbl.TextLoc.obj;
vTblTextRange.end.offset = Constants.FV_OBJ_END_OFFSET
vDoc.TextSelection=vTblTextRange;
vDoc.Cut (0);
vTblTextRange.beg.obj=vAnchorTextLoc.obj;
vTblTextRange.beg.offset = 0;
vTblTextRange.end.obj=vAnchorTextLoc.obj;
vTblTextRange.end.offset =0;
vDoc.TextSelection=vTblTextRange;
vDoc.Paste (0);
vAnchorPgf2.Delete(); -
Using Calendar.set() method problem
Hi all,
First of all sorry to bother with such a trivial(?) matter but I cannot solve it by myself.
I have a piece of code which I simply want to handle the current date with the GregorianCalendar object so that the date would be set to the Calendar.SUNDAY (of the current week). Simple enough?
Code as follows:
import java.util.*;
import java.text.*;
public class Foo
public static void main(String[] args)
Foo foo = new Foo();
Date newdate = foo.bar();
public Date bar()
GregorianCalendar m_calendar = new GregorianCalendar(new Locale("fi","FI"));
m_calendar.setFirstDayOfWeek(Calendar.MONDAY);
Date newDate = null;
try
m_calendar.setTime(new Date());
System.out.println("Calendar='" + m_calendar.toString() + "'");
m_calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
StringBuffer sb = new StringBuffer();
sdf.format(m_calendar.getTime(), sb, new FieldPosition(0));
System.out.println("Date in format (" + sdf.toPattern() + ") = '" + sb.toString() + "'");
catch(Exception e)
e.printStackTrace();
return m_calendar.getTime();
This should work at least accoring to my understanding of the SDK documentation as follows with
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)
Calendar='java.util.GregorianCalendar[time=1054636838494,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/Helsinki",offset=7200000,dstSavings=3600000,useDaylight=true,transitions=118,lastRule=java.util.SimpleTimeZone[id=Europe/Helsinki,offset=7200000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2003,MONTH=5,WEEK_OF_YEAR=23,WEEK_OF_MONTH=1,DAY_OF_MONTH=3,DAY_OF_YEAR=154,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=1,HOUR_OF_DAY=13,MINUTE=40,SECOND=38,MILLISECOND=494,ZONE_OFFSET=7200000,DST_OFFSET=3600000]'
Date in format (yyyy.MM.dd) = '2003.06.08'
Which is the sunday of this week. But as I run the same code with:
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1.06-020625-14:20)
Java HotSpot(TM) Server VM (build 1.3.1 1.3.1.06-JPSE_1.3.1.06_20020625 PA2.0, mixed mode)
Calendar='java.util.GregorianCalendar[time=1054636630703,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=java.util.SimpleTimeZone[id=Europe/Helsinki,offset=7200000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2003,MONTH=5,WEEK_OF_YEAR=23,WEEK_OF_MONTH=1,DAY_OF_MONTH=3,DAY_OF_YEAR=154,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=1,HOUR_OF_DAY=13,MINUTE=37,SECOND=10,MILLISECOND=703,ZONE_OFFSET=7200000,DST_OFFSET=3600000]'
Date in format (yyyy.MM.dd) = '2003.06.01'
Which is sunday of the previous week and incorrect in my opinion. The latter result is run on HP-UX B.11.11 U 9000/800 and first on NT.
Any ideas why this is happening? Thanks in advance!
Greets, JanneThanks for your answer!
The problem is that I have to work with this older SDK version. :) But I got it solved by using the roll method with the following syntax:
int delta = [dayToSet] - m_calendar.get(Calendar.DAY_OF_WEEK);
in which the delta is of course the difference (negative or positive to the current day of the week)
and then using the roll call:
m_calendar.roll(Calendar.DAY_OF_WEEK, delta);
which doesn't alter the current week. So this works if someone else has a similar problem with the version 1.3.1
Greets, Janne -
Netprice Picked up from last document-Open PO load using LSMW BAPI method.
Hi Experts,
I m doing Open PO load using LSMW BAPI method...(BAPI_PO_CREAT1).
Inside the LSMW BAPI picks up the NETPR value from the last document and doesnt consider the value from load file...
Please advice me how to handle this issue...
I tried giving values to field CALCTYPE at item level or POCOND table with with carry out new pricing options....but nothig works for me...
PLease give your valuable inputs to achieve the requirement....
Bharathi.Jread OSS Note 580225 - Purchasing BAPIs: Conditions and pricing
-
How to send email using SPUtility.SendEmail method
hi all,
I am using SPUtility.SendEmail method to send email to list of users. but i am unable to send it. Code is not throwing any kind of error. Can anyone guide me steps to send email programmatically .
Regards,
Milan C.Hello Milan,
Humm,
Problably code is correct, need to speak with System administrator of mail server/exchange to know what rules exist on server mail.
Verify if server mail validate IP from server to allow send mail.
Verify if exist some rule from server mail that validate sender with some domain "[email protected]"
Verify if Email server have relay active to send Emails externaly
Verify what type of authentication exist on you server Email, "Anonymous access or Login as password access", https? port number?
This info is very important to have before you configure emails on sharepoint, to preview problems....
André Lage Microsoft SharePoint, CRM and Sybase Consultant
Blog:http://aaclage.blogspot.com
Codeplex:http://spupload.codeplex.com/http://simplecamlsearch.codeplex.com/ -
There is no printer output when using the PrintOut method
I have a VB6 app with CR XI, and a customer found a situation that when printing a report directly to the printer using the PrintOut method, there is no printer output or error message.
Some reports using the same code print normally, but a report that is preceded by another print call, presents this behavior.
And when the output is directed to the screen, we can see the report.
Could someone give me an idea of what is the problem?
Thanks,
Isis
SP - Brazil
The code used is below:
Set rpt = applic.OpenReport(App.Path & "SEFoto" + TipoRPT + ".rpt")
rpt.FormulaSyntax = crCrystalSyntaxFormula
rpt.FormulaFields.GetItemByName("Empresa").Text = "'" + Company + "'"
rpt.FormulaFields.GetItemByName("Idioma").Text = "'" + Idioma + "'"
rpt.FormulaFields.GetItemByName("Versao").Text = "'" + Versao + "'"
' ... Some lines to compose the selection formula
rpt.RecordSelectionFormula = Cond
' To evaluate the image length:
Arq = rsTMP3!FT_Arquivo
ImageScaling = FatorDeReducao(Arq, "F")
' To reduce the image length:
AchouOLE = False
For Each oSection In rpt.Sections
For Each oObject In oSection.ReportObjects
If oObject.Name = "PictureFoto" Then
Set oOleObject = oObject
AchouOLE = True
Exit For
End If
Next oObject
If AchouOLE Then Exit For
Next oSection
With oOleObject
.Suppress = True
.XScaling = ImageScaling ' 0.5 = 50%, 1 = 100%
.YScaling = ImageScaling
.Suppress = False
End With
Aguarde.Show 1
If DestinoRel = 9 Or DestinoRel = 1 Then ' Padrão ou impressora
rpt.PrintOut True ' <<<---- Here using true or false nothing happens
Else
PrintRPTtela rpt, "Fotos" ' <<<--- Here it works fine
End IfHi Isis,
Not sure if you have applied any service Packs to CR? If please do so and test again. Then you can upgrade to CR XI R2 for free, use your XI Keycode and download Service Pack 4 from this link:
https://smpdl.sap-ag.de/~sapidp/012002523100011802732008E/crxir2_sp4_full_build.exe
You'll find the distribution files for your app also from that same download area.
If you don't want to upgrade to XI R2 then download all patches from XI and test again. This issues rings a bell that it may have been fixed.
Thank you
Don
Maybe you are looking for
-
I would like build an app with a header and footer which will be used. What is the best practice for this type of layout? Any template I can use? Thanks.
-
Updating - the best of both worlds
Hi, Ive had a look through a lot of the topics in this forum, though nobody seems to have wanted to do exactly the same as me. My application has quite a few lengthy operations that are perfomed as part of an actionPerformed event. Im focusing on one
-
Did Firefox Update restart my Windows session?
I left my computer with a number of windows and documents open, some in the midst of making changes. When I returned, my other activity was gone and Firefox said it had just done an automatic update. Did the Firefox update cancel all the programs I h
-
Hi, In one of the interactive report I am showing monthly billing... I can use interactive option to highlight any significant variance, but it shows a + sign that is causing some confusion... Is there a way I can highlight any significant month over
-
How do you guys reduce noise in Canon 5d mark II video?
I am really interested to know if anybody could give me leads on how to reduce noise in 5d mark II videos. First off - Canon 5d mark II stock HD bitrate is not really nice. Even shooting in day time I have color noise and a lot of noise in shadow are