LFA1-MCOD1 not updating
Hi ,
When creating a vendor, the name1 and city has to be copied to LFA1-MCOD1 , LFA1-MCOD3 respectively. For some vendors its not updating in the table LFA1. Please provide some information on this problem.
Regards,
Rosy.
Hello,
For anyoone who may be interested, SAP has released a Z report to correct discrepancies between MCOD1 and NAME1 fields.
Please check the note 544868.
The updation of field MCOD* has been brought by note 1009172 and you can even check the form MATCHCODEFEFLDER_FUELLEN into MF02KFM0 used by program SAPFM02K.
Regards,
Kev
Similar Messages
-
LFA1 - MCOD Fields not updated
When a vendor is created fields MCOD1 , MCOD3 has to be popuated automatically. This is not happening for some vendors. Please inform if you know the reason for this.
Thanks for Update . In my scenarion MCOD3 was not updated though city was filled in FK01.
Similarly for some vendors MCOD1 is not updated though the name1 field has value.
Please help. -
hi alll
1. i have written below coding for vendor master update. i have two records in text file, in that first record not updated. while updating its shows error. but second record updated. how can i solve. plse help me
2. I want to show the error message or i want to print how can i do it
REPORT ZVENTESTBDC.
data : begin of it_xk01 occurs 0,
LIFNR(10) type c,
BUKRS(4) type c,
EKORG(4) type c,
KTOKK(4) type c,
NAME1(30) type c,
SORT1(10) type c,
LAND1(3) type c,
AKONT(10) type c,
FDGRV(10) type c,
WAERS(3) type c,
end of it_xk01.
DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:\Documents and Settings\entegall\Desktop\vendor.txt'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = it_xk01.
loop at it_xk01.
refresh it_bdcdata.
perform open_group.
perform bdc_dynpro using 'SAPMF02K' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-REF_LIFNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02K-LIFNR'
it_xk01-lifnr.
perform bdc_field using 'RF02K-BUKRS'
IT_XK01-BUKRS.
perform bdc_field using 'RF02K-EKORG'
IT_XK01-EKORG.
perform bdc_field using 'RF02K-KTOKK'
IT_XK01-KTOKK.
perform bdc_dynpro using 'SAPMF02K' '0110'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-LAND1'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFA1-NAME1'
IT_XK01-NAME1.
perform bdc_field using 'LFA1-SORTL'
IT_XK01-SORT1.
perform bdc_field using 'LFA1-NAME2'
perform bdc_field using 'LFA1-LAND1'
IT_XK01-LAND1.
perform bdc_dynpro using 'SAPMF02K' '0120'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-KUNNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0130'.
perform bdc_field using 'BDC_CURSOR'
'LFBK-BANKS(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_dynpro using 'SAPMF02K' '0210'.
perform bdc_field using 'BDC_CURSOR'
'LFB1-FDGRV'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFB1-AKONT'
IT_XK01-AKONT.
perform bdc_field using 'LFB1-FDGRV'
IT_XK01-FDGRV.
perform bdc_dynpro using 'SAPMF02K' '0215'.
perform bdc_field using 'BDC_CURSOR'
'LFB1-ZTERM'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0220'.
perform bdc_field using 'BDC_CURSOR'
'LFB5-MAHNA'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0310'.
perform bdc_field using 'BDC_CURSOR'
'LFM1-WAERS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFM1-WAERS'
IT_XK01-WAERS.
perform bdc_dynpro using 'SAPMF02K' '0320'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-LIFNR'.
perform bdc_field using 'BDC_OKCODE'
'=UPDA'.
*perform bdc_transaction using 'XK01' using IT_BDCDATA mode 'A' UPDATE 'S'
CALL TRANSACTION 'XK01' USING IT_BDCDATA
MODE 'A'
UPDATE 'S' MESSAGES INTO IT_BDCMSGCOLL.
*perform close_group.
endloop.
FORM BDC_DYNPRO USING PROG SCR.
CLEAR IT_BDCDATA.
IT_BDCDATA-PROGRAM = PROG.
IT_BDCDATA-DYNPRO = SCR.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
ENDFORM.
FORM BDC_FIELD USING FNAM FVAL.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = FNAM.
IT_BDCDATA-FVAL = FVAL.
APPEND IT_BDCDATA.
ENDFORM.go through this porgarm u will get the clear picture about down loading the error msg.
PROGRAM ID : ZSD_CONDREC_DISCOUNT_ZSWD
DESCRIPTION : BDC PROGRAM TO UPLOAD CONDITION RECORDS FOR Discount
TRANSACTION : VK11
CONDITION TYPE : ZSWD(Key combination 3)
VERSION : 1.0
Text Elements
001 : Select Options
002 : C:\SD\Error\Discount-ZSWD
003 : Error Download Path
004 : C:\SD\Error\Discount-ZSWD - DDMMYYYY HH:MM:SS.txt
REPORT ZSD_CONDREC_DISCOUNT_ZSWD
MESSAGE-ID 00.
*include bdcrecx1.
TABLES : t100.
Internal table declaration *
DATA : BEGIN OF it_price OCCURS 0,
index(4), "Index
kschl(4), "Condition type
vkorg(4), "Sales organization
vtweg(2), "distribution channel
spart(2), "Division
matnr(18), "Material no
kbetr(11), "Rate
konwa(5), "Rate unit (currency or percentage)
kmein(3), "Condition unit
krech(1), "Calculation type for condition
datab(10), "Validity start date
datbi(10), "Validity end date
er_message(100),
END OF it_price.
Internal table to get the error data *
DATA : it_error LIKE it_price OCCURS 0 WITH HEADER LINE.
DATA : bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA : i_msgtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
Internal table to find the error from the legacy data *
DATA : BEGIN OF it_erfind OCCURS 0,
index(4), "Index
er_message(100), "For Error Message
END OF it_erfind.
Variables declaration *
DATA : g_message(200),
time(10),
date(10) ,
v_error_filename LIKE rlgrap-filename.
date = sy-datum.
time = sy-uzeit.
Initialization
INITIALIZATION.
Generating Error file name with date and time.
PERFORM make_file_name.
Selection Screen *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETER: p_file LIKE ibipparms-path OBLIGATORY.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(30) text-003.
SELECTION-SCREEN COMMENT 33(79) text-004.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN:END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file .
PERFORM get_filename.
Start of selection
START-OF-SELECTION.
PERFORM upload_data.
PERFORM fill_data.
END-OF-SELECTION.
*& Form fill_data
text
FORM fill_data.
LOOP AT it_price.
*Start of Screen 1
PERFORM bdc_dynpro USING 'SAPMV13A' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RV13A-KSCHL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ANTA'.
PERFORM bdc_field USING 'RV13A-KSCHL'
it_price-kschl.
Key Combination: Sales org / Dist. channel / Division / Material
PERFORM bdc_dynpro USING 'SAPLV14A' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RV130-SELKZ(03)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=WEIT'.
PERFORM bdc_field USING 'RV130-SELKZ(03)'
'X'.
*Start of Screen 2
PERFORM bdc_dynpro USING 'SAPMV13A' '1800'.
PERFORM bdc_field USING 'KOMG-VKORG'
it_price-vkorg.
PERFORM bdc_field USING 'KOMG-VTWEG'
it_price-vtweg.
PERFORM bdc_field USING 'KOMG-SPART'
it_price-spart.
PERFORM bdc_field USING 'KOMG-MATNR(01)'
it_price-matnr.
PERFORM bdc_field USING 'KONP-KBETR(01)'
it_price-kbetr.
PERFORM bdc_field USING 'KONP-KONWA(01)'
it_price-konwa.
PERFORM bdc_field USING 'KONP-KMEIN(01)'
it_price-kmein.
PERFORM bdc_field USING 'RV13A-KRECH(01)'
it_price-krech.
PERFORM bdc_field USING 'RV13A-DATAB(01)'
it_price-datab.
PERFORM bdc_field USING 'RV13A-DATBI(01)'
it_price-datbi.
perform bdc_dynpro using 'SAPMV13A' '1821'.
perform bdc_field using 'BDC_CURSOR'
'KOMG-MATNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SICH'. "Save the entry
PERFORM bdc_transaction TABLES i_msgtab USING 'VK11' 'N' 'L'.
*To fetch the error message from the standard error table
SELECT SINGLE * FROM t100 WHERE sprsl = 'E'
AND arbgb = sy-msgid
AND msgnr = sy-msgno.
g_message = t100-text.
*subroutine to change the error message for every document number
PERFORM replace_parameters USING sy-msgv1
sy-msgv2
sy-msgv3
sy-msgv4
CHANGING g_message.
WRITE: / 'System variables:'.
SKIP.
WRITE: / ' Sy-msgty:', sy-msgty.
WRITE: / ' Sy-msgid:', sy-msgid.
WRITE: / ' Sy-msgno:', sy-msgno.
WRITE: / ' Sy-msgv1:', sy-msgv1.
WRITE: / ' Sy-msgv2:', sy-msgv2.
WRITE: / ' Sy-msgv3:', sy-msgv3.
WRITE: / ' Sy-msgv4:', sy-msgv4.
SKIP.
WRITE: / 'Message:'.
SKIP.
WRITE: / sy-msgty, g_message.
*To find out the error in the legacy data if there is anything and pass
*the document no with error message to the seperate internal table
*called it_erfind
IF sy-msgty = 'E'.
it_erfind-index = it_price-index.
it_erfind-er_message = g_message.
APPEND it_erfind.
ENDIF.
*Finally we are segregating the error and downloading the error data.
AT LAST.
*To segregate the error
PERFORM segregate_error.
*To download the error from it_error internal table with err mesg
PERFORM error_download.
PERFORM display_message.
ENDAT.
ENDLOOP.
perform close_group.
CLEAR it_price.
ENDFORM. "fill_data
*Subrotine to replace the parameters
FORM replace_parameters USING p_par_1 p_par_2 p_par_3
p_par_4 CHANGING p_message.
erst mal pruefen, ob numerierte Parameter verwendet wurden
DO.
REPLACE '&1' WITH p_par_1 INTO p_message.
IF sy-subrc <> 0.
EXIT.
ENDIF.
ENDDO.
DO.
REPLACE '&2' WITH p_par_2 INTO p_message.
IF sy-subrc <> 0.
EXIT.
ENDIF.
ENDDO.
DO.
REPLACE '&3' WITH p_par_3 INTO p_message.
IF sy-subrc <> 0.
EXIT.
ENDIF.
ENDDO.
DO.
REPLACE '&4' WITH p_par_4 INTO p_message.
IF sy-subrc <> 0.
EXIT.
ENDIF.
ENDDO.
falls keine numerierten Parameter vorh., ersetzen wie gehabt
REPLACE '&' WITH p_par_1 INTO p_message.
CONDENSE p_message.
IF sy-subrc EQ 0.
REPLACE '&' WITH p_par_2 INTO p_message.
CONDENSE p_message.
IF sy-subrc EQ 0.
REPLACE '&' WITH p_par_3 INTO p_message.
CONDENSE p_message.
IF sy-subrc EQ 0.
REPLACE '&' WITH p_par_4 INTO p_message.
CONDENSE p_message.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. "REPLACE_PARAMETERS
*Subroutine to segregate the error data from the legacy data
FORM segregate_error.
LOOP AT it_erfind.
LOOP AT it_price WHERE index = it_erfind-index.
MOVE-CORRESPONDING it_price TO it_error.
it_error-er_message = it_erfind-er_message.
APPEND it_error.
ENDLOOP.
ENDLOOP.
ENDFORM. "segregate_error
*Subroutine to download the error data from the it_error table.
FORM error_download.
IF it_error[] IS NOT INITIAL.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
codepage = 'IBM'
filename = v_error_filename
filetype = 'DAT'
TABLES
data_tab = it_error.
ENDIF.
ENDFORM. "error_download
Start new screen *
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. "BDC_DYNPRO
Insert field *
FORM bdc_field USING fnam fval.
IF FVAL <> NODATA.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDIF.
ENDFORM. "BDC_FIELD
*& Form bdc_transaction
text
-->MESSTAB text
-->TCODE text
-->CTUMODE text
-->CUPDATE text
FORM bdc_transaction TABLES messtab USING tcode ctumode cupdate .
CALL TRANSACTION tcode USING bdcdata
MODE ctumode
UPDATE cupdate
MESSAGES INTO messtab.
REFRESH bdcdata.
CLEAR bdcdata.
ENDFORM. " bdc_transaction
Uploading data file to internal table. *
FORM upload_data.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = p_file
CODEPAGE = 'IBM '
filetype = 'DAT'
TABLES
data_tab = it_price
EXCEPTIONS
conversion_error = 1
invalid_table_width = 2
invalid_type = 3
no_batch = 4
unknown_error = 5
gui_refuse_filetransfer = 6
OTHERS = 7.
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. "upload_data
*& Form display_message
FORM display_message .
IF it_error[] IS INITIAL.
MESSAGE i019(zmsg). "Success
ELSE.
MESSAGE e020(zmsg). "Failed
ENDIF.
ENDFORM. " display_message
*& Form get_filename
text
--> p1 text
<-- p2 text
FORM get_filename .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
FIELD_NAME = p_file
IMPORTING
file_name = p_file .
IF sy-subrc NE 0 .
WRITE : / 'Enter File Name'.
ENDIF.
ENDFORM. " get_filename
*& Form make_file_name
FORM make_file_name .
WRITE sy-datum TO date MM/DD/YYYY.
WRITE sy-uzeit TO time USING EDIT MASK ' __ __ __'.
CONCATENATE text-002 date time '.txt'
INTO v_error_filename.
ENDFORM. " make_file_name
regards
prabhu -
Data not Updated in Custom Screen fields-Vendor Master
Hello,
I have created a custom screen in vendor master transaction and also implemented the two BADI's below.
Business Add-In: Processing Master Data Enhancements
(CUSTOMER_ADD_DATA/VENDOR_ADD_DATA)
Passed the Custom Program and Screen No in the method GET_TAXI_SCREEN
Business Add-In: Customer Subscreens
(CUSTOMER_ADD_DATA_CS/VENDOR_ADD_DATA_CS)
activate it with the BADI Processing Master Data Enhancements with method CHECK_ADD_ON_ACTIVE.
I also created a new screen and used few fields from LFA1 (Append structure fields) such that the fields on the screen are : LFA1-ZZFIELD1 etc...
Now the issue is the screen is displayed, but the data entered on the screen is not updated on the table LFA1 or data from the table is not displayed on the custom screen.
Am i missing something?
Regards,
ShivaSolved this problem.
I built the query against InfoCube and not the characteristic itself. That's why I can't see the update.
Thanks. -
Vendor Address is not updating in ADRC table by LSMW IDOC method
Hi,
I'm updating Vendor address data by LSMW IDoc method
for this i'm using ADRMAS as msg type and ADRMAS02 as Idoc type.
In partner profiles Process code given as BAPI for this.
i maintained entry in TSADOBJ table LFA1 as OBJTYPE,1 as ADDR TYPE,0001 as context,LFA1 as TABLENAME,ADRNR as FIELDNAME, ADRC as TABLE PERS, ADDRNUMBER as FIELD PERS
Idoc generating sucessfully.
But data is not updating in database.
i think the problem in TSADOBJ config.
Please give exact configuration which can update vendor data.
Thanks in advancebe open minded. SAP gives several import methods to load vendors. one of them is per IDOC.
But the vendor master IDOC does not automatically create the adress master.
And even more important, if you migrate data from one SAP system to another, the IDOC method is more straight forward than the batch input, because you can send the IDOCs from legacy system to new system, you will then have a 1:1 relation of the structure in LSMW and you can create vendor masters by knowing the new vendor number from an internal number range already in LSMW, long before you actually post the vendor. With batch input you can either post with numbers from external number range, or you just dont know the new number already in LSMW.
And you dont need to download the data to Excel. And further, the LFA1 adress data has less information than the ADRC adress data. -
Document number not updating in the document
hi gurus,
this is a excise invoice voucher form used by the client .
some values are not updated in document no.
could someone tell me why it is not updating.
if there are any corrections in code pls update me and solve my problem.
urs
pradeep.r
*& Include ZFI_PAY_ADVICE_F01_STR_2 *
*& Form select_data
text
--> p1 text
<-- p2 text
FORM SELECT_DATA .
REFRESH IT_BKPF.
CLEAR IT_BKPF.
SELECT BELNR GJAHR XBLNR BLDAT BLART INTO CORRESPONDING FIELDS OF
TABLE IT_BKPF FROM BKPF
WHERE BELNR IN S_BELNR
AND GJAHR IN S_GJAHR
AND BUKRS IN S_BUKRS.
IF IT_BKPF[] IS INITIAL.
MESSAGE S001.
ENDIF.
SORT IT_BKPF BY BELNR GJAHR.
LOOP AT IT_BKPF.
SELECT SINGLE EBELN WRBTR WERKS LIFNR KUNNR INTO
(IT_BKPF-ZUONR,IT_BKPF-WRBTR,IT_BKPF-WERKS,IT_BKPF-LIFNR,IT_BKPF-KUNNR)
FROM BSEG
WHERE BELNR = IT_BKPF-BELNR
AND GJAHR = IT_BKPF-GJAHR
AND BUKRS IN S_BUKRS
AND KOART = 'K'.
IF NOT IT_BKPF-LIFNR IS INITIAL.
DATA : WRK_ADRNR LIKE LFA1-ADRNR.
CLEAR WRK_ADRNR.
SELECT SINGLE ADRNR INTO WRK_ADRNR FROM LFA1
WHERE LIFNR = IT_BKPF-LIFNR.
SELECT SINGLE NAME1
NAME2
NAME3
NAME4
CITY1
REGION
COUNTRY
STREET
INTO (IT_BKPF-NAME1,IT_BKPF-NAME2,IT_BKPF-NAME3,IT_BKPF-NAME4,
IT_BKPF-CITY1,IT_BKPF-REGION,IT_BKPF-COUNTRY,IT_BKPF-STREET)
FROM ADRC
WHERE ADDRNUMBER EQ WRK_ADRNR.
Text for Country
SELECT SINGLE LANDX INTO IT_BKPF-LANDX FROM T005T
WHERE LAND1 = IT_BKPF-COUNTRY
AND SPRAS EQ SY-LANGU.
Text for Region
SELECT SINGLE BEZEI INTO IT_BKPF-BEZEI FROM T005U
WHERE BLAND = IT_BKPF-REGION
AND SPRAS EQ SY-LANGU
AND LAND1 = IT_BKPF-COUNTRY.
ENDIF.
IF NOT IT_BKPF-KUNNR IS INITIAL.
CLEAR WRK_ADRNR.
SELECT SINGLE ADRNR INTO (WRK_ADRNR) FROM KNA1
WHERE KUNNR = IT_BKPF-KUNNR.
SELECT SINGLE NAME1
NAME2
NAME3
NAME4
CITY1
REGION
COUNTRY
STREET
INTO (IT_BKPF-NAME1,IT_BKPF-NAME2,IT_BKPF-NAME3,IT_BKPF-NAME4,
IT_BKPF-CITY1,IT_BKPF-REGION,IT_BKPF-COUNTRY,IT_BKPF-STREET)
FROM ADRC
WHERE ADDRNUMBER EQ WRK_ADRNR.
Text for Country
SELECT SINGLE LANDX INTO IT_BKPF-LANDX FROM T005T
WHERE LAND1 = IT_BKPF-COUNTRY
AND SPRAS EQ SY-LANGU.
Text for Region
SELECT SINGLE BEZEI INTO IT_BKPF-BEZEI FROM T005U
WHERE BLAND = IT_BKPF-REGION
AND SPRAS EQ SY-LANGU
AND LAND1 = IT_BKPF-COUNTRY.
ENDIF.
MODIFY IT_BKPF.
ENDLOOP.
REFRESH IT_DATA.
CLEAR IT_DATA.
LOOP AT IT_BKPF.
DATA : WRK_BSAKBELNR LIKE BSAK-BELNR.
CLEAR WRK_BSAKBELNR.
SELECT SINGLE BELNR INTO WRK_BSAKBELNR FROM BSAK
WHERE AUGBL = IT_BKPF-BELNR
AND GJAHR = IT_BKPF-GJAHR
AND BUKRS IN S_BUKRS.
Advance
IF WRK_BSAKBELNR IS INITIAL.
IT_DATA-VBELNR = IT_BKPF-BELNR.
IT_DATA-BELNR = IT_BKPF-BELNR.
IT_DATA-GJAHR = IT_BKPF-GJAHR.
IT_DATA-XBLNR = IT_BKPF-XBLNR.
IT_DATA-BLDAT = IT_BKPF-BLDAT.
IT_DATA-BLART = IT_BKPF-BLART.
IT_DATA-ZUONR = IT_BKPF-ZUONR.
IT_DATA-WRBTR = IT_BKPF-WRBTR.
IT_DATA-WRBTRC = IT_DATA-WRBTR.
APPEND IT_DATA.
IT_DATA-VBELNR = IT_BKPF-BELNR.
IT_DATA-BELNR = ' '.
IT_DATA-GJAHR = ' '.
IT_DATA-BLDAT = ' '.
IT_DATA-BLART = ' '.
IT_DATA-ZUONR = ' '.
TDS
DATA : WRK_TDSWRBTR LIKE BSIS-WRBTR.
CLEAR WRK_TDSWRBTR.
SELECT SUM( WRBTR ) INTO WRK_TDSWRBTR FROM BSIS
WHERE BELNR = IT_BKPF-BELNR
AND GJAHR = IT_BKPF-GJAHR
AND BUKRS IN S_BUKRS
AND QSSKZ NE SPACE
AND QSSKZ NE 'XX'
AND XREF3 NE SPACE
AND QSSKZ NE 'S1'
AND QSSKZ NE 'S2'.
IF WRK_TDSWRBTR IS INITIAL.
SELECT SUM( WRBTR ) INTO WRK_TDSWRBTR FROM BSAS
WHERE BELNR = IT_BKPF-BELNR
AND GJAHR = IT_BKPF-GJAHR
AND QSSKZ NE SPACE
AND QSSKZ NE 'XX'
AND XREF3 NE SPACE
AND BUKRS IN S_BUKRS
AND QSSKZ NE 'S1'
AND QSSKZ NE 'S2'.
ENDIF.
DATA : WRK_BSCHL LIKE BSIS-BSCHL.
CLEAR WRK_BSCHL.
IF NOT WRK_TDSWRBTR IS INITIAL.
IT_DATA-XBLNR = 'TDS/ECess'.
IT_DATA-WRBTR = WRK_TDSWRBTR.
SELECT SINGLE BSCHL INTO WRK_BSCHL FROM BSIS
WHERE BELNR = IT_BKPF-BELNR
AND GJAHR = IT_BKPF-GJAHR
AND QSSKZ NE SPACE
AND BUKRS IN S_BUKRS
AND QSSKZ NE 'XX'
AND XREF3 NE SPACE
AND QSSKZ NE 'S1'
AND QSSKZ NE 'S2'
AND BSCHL = '40'.
IF WRK_BSCHL IS INITIAL.
SELECT SINGLE BSCHL INTO WRK_BSCHL FROM BSAS
WHERE BELNR = IT_BKPF-BELNR
AND GJAHR = IT_BKPF-GJAHR
AND QSSKZ NE SPACE
AND QSSKZ NE 'XX'
AND XREF3 NE SPACE
AND BUKRS IN S_BUKRS
AND QSSKZ NE 'S1'
AND QSSKZ NE 'S2'
AND BSCHL = '40'.
ENDIF.
IF WRK_BSCHL IS INITIAL.
IT_DATA-WRBTR = IT_DATA-WRBTR * - 1.
ENDIF.
IT_DATA-WRBTRC = IT_DATA-WRBTR.
APPEND IT_DATA.
ENDIF.
IT_DATA-VBELNR = IT_BKPF-BELNR.
IT_DATA-BELNR = ' '.
IT_DATA-GJAHR = ' '.
IT_DATA-BLDAT = ' '.
IT_DATA-BLART = ' '.
IT_DATA-ZUONR = ' '.
Discount
DATA : WRK_DEDWRBTR LIKE BSIS-WRBTR.
CLEAR WRK_DEDWRBTR.
SELECT SUM( WRBTR ) INTO WRK_DEDWRBTR FROM BSIS
WHERE BELNR = IT_BKPF-BELNR
AND GJAHR = IT_BKPF-GJAHR
AND QSSKZ EQ SPACE
AND BUKRS IN S_BUKRS
AND BSCHL NE '50'.
IF NOT WRK_DEDWRBTR IS INITIAL.
SELECT SUM( WRBTR ) INTO WRK_DEDWRBTR FROM BSAS
WHERE BELNR = IT_BKPF-BELNR
AND GJAHR = IT_BKPF-GJAHR
AND QSSKZ EQ SPACE
AND BUKRS IN S_BUKRS
AND BSCHL NE '50'.
ENDIF.
IF NOT WRK_DEDWRBTR IS INITIAL.
IT_DATA-XBLNR = 'Discount'.
IT_DATA-WRBTR = WRK_DEDWRBTR.
IT_DATA-WRBTR = IT_DATA-WRBTR * - 1.
IT_DATA-WRBTRC = IT_DATA-WRBTR.
APPEND IT_DATA.
ENDIF.
Invoice
ELSE.
REFRESH IT_BELNR.
CLEAR IT_BELNR.
DATA : W_YEAR(4),
W_MONTH(2) VALUE '04',
W_DATE(2) VALUE '01',
W_YEAR1(8).
W_YEAR = S_GJAHR-LOW.
CONCATENATE W_YEAR W_MONTH W_DATE INTO W_YEAR1.
SELECT BELNR GJAHR XBLNR BLDAT BLART ZUONR WRBTR BSCHL INTO
TABLE IT_BELNR FROM BSAK
WHERE AUGBL = IT_BKPF-BELNR
AND AUGDT GE W_YEAR1
AND GJAHR = IT_BKPF-GJAHR
AND BELNR NE IT_BKPF-BELNR
AND BUKRS IN S_BUKRS.
SORT IT_BELNR BY BELNR GJAHR.
LOOP AT IT_BELNR.
CLEAR WRK_TDSWRBTR.
SELECT SUM( WRBTR ) INTO WRK_TDSWRBTR FROM BSIS
WHERE BELNR = IT_BELNR-BELNR
AND GJAHR = IT_BELNR-GJAHR
AND QSSKZ NE SPACE
AND BUKRS IN S_BUKRS
AND QSSKZ NE 'XX'.
IF WRK_TDSWRBTR IS INITIAL.
SELECT SUM( WRBTR ) INTO WRK_TDSWRBTR FROM BSAS
WHERE BELNR = IT_BELNR-BELNR
AND GJAHR = IT_BELNR-GJAHR
AND QSSKZ NE SPACE
AND BUKRS IN S_BUKRS
AND QSSKZ NE 'XX'.
ENDIF.
IT_DATA-VBELNR = IT_BKPF-BELNR.
IT_DATA-BELNR = IT_BELNR-BELNR.
IT_DATA-GJAHR = IT_BELNR-GJAHR.
IT_DATA-XBLNR = IT_BELNR-XBLNR.
IT_DATA-BLDAT = IT_BELNR-BLDAT.
IT_DATA-BLART = IT_BELNR-BLART.
IT_DATA-ZUONR = IT_BELNR-ZUONR.
IT_DATA-WRBTR = IT_BELNR-WRBTR + WRK_TDSWRBTR .
IF IT_BELNR-BSCHL GE '31' AND IT_BELNR-BSCHL LE '39'.
IT_DATA-WRBTRC = IT_DATA-WRBTR.
ELSE.
IF IT_BELNR-BSCHL GE '21' AND IT_BELNR-BSCHL LE '29'.
IT_DATA-WRBTRC = IT_DATA-WRBTR * - 1.
ENDIF.
ENDIF.
APPEND IT_DATA.
IT_DATA-VBELNR = IT_BKPF-BELNR.
IT_DATA-BELNR = ' '.
IT_DATA-GJAHR = ' '.
IT_DATA-BLDAT = ' '.
IT_DATA-BLART = ' '.
IT_DATA-ZUONR = ' '.
TDSBELNR
IF NOT WRK_TDSWRBTR IS INITIAL.
IT_DATA-XBLNR = 'TDS/ECess'.
IT_DATA-WRBTR = WRK_TDSWRBTR.
CLEAR WRK_BSCHL.
IF NOT WRK_TDSWRBTR IS INITIAL.
IT_DATA-XBLNR = 'TDS/ECess'.
IT_DATA-WRBTR = WRK_TDSWRBTR.
SELECT SINGLE BSCHL INTO WRK_BSCHL FROM BSIS
WHERE BELNR = IT_BELNR-BELNR
AND GJAHR = IT_BELNR-GJAHR
AND QSSKZ NE SPACE
AND QSSKZ NE 'XX'
AND BSCHL = '40'.
IF WRK_BSCHL IS INITIAL.
SELECT SINGLE BSCHL INTO WRK_BSCHL FROM BSAS
WHERE BELNR = IT_BELNR-BELNR
AND GJAHR = IT_BELNR-GJAHR
AND QSSKZ NE SPACE
AND QSSKZ NE 'XX'
AND BSCHL = '40'.
ENDIF.
IF WRK_BSCHL IS INITIAL.
IT_DATA-WRBTR = IT_DATA-WRBTR * - 1.
ENDIF.
IT_DATA-WRBTRC = IT_DATA-WRBTR.
APPEND IT_DATA.
ENDIF.
ENDIF.
ENDLOOP.
IT_DATA-VBELNR = IT_BKPF-BELNR.
IT_DATA-BELNR = ' '.
IT_DATA-GJAHR = ' '.
IT_DATA-BLDAT = ' '.
IT_DATA-BLART = ' '.
IT_DATA-ZUONR = ' '.
TDSVBELNR
CLEAR WRK_TDSWRBTR.
SELECT SUM( WRBTR ) INTO WRK_TDSWRBTR FROM BSIS
WHERE BELNR = IT_BKPF-BELNR
AND GJAHR = IT_BKPF-GJAHR
AND QSSKZ NE SPACE
AND BUKRS IN S_BUKRS
AND QSSKZ NE 'XX'
AND QSSKZ NE 'S1'
AND QSSKZ NE 'S2'.
IF WRK_TDSWRBTR IS INITIAL.
SELECT SUM( WRBTR ) INTO WRK_TDSWRBTR FROM BSAS
WHERE BELNR = IT_BKPF-BELNR
AND GJAHR = IT_BKPF-GJAHR
AND QSSKZ NE SPACE
AND QSSKZ NE 'XX'
AND AUGBL = SPACE
AND BUKRS IN S_BUKRS
AND QSSKZ NE 'S1'
AND QSSKZ NE 'S2'.
ENDIF.
**INSERTED BY PALANI ON 01.04.2006
IF WRK_TDSWRBTR IS INITIAL.
SELECT SUM( WRBTR ) INTO WRK_TDSWRBTR FROM BSIS
WHERE BELNR = IT_BKPF-BELNR
AND GJAHR = IT_BKPF-GJAHR.
ENDIF.
***END BY PALANI.
IF NOT WRK_TDSWRBTR IS INITIAL.
IT_DATA-XBLNR = 'TDS/ECess'.
IT_DATA-WRBTR = WRK_TDSWRBTR.
IT_DATA-WRBTR = IT_DATA-WRBTR * - 1.
IT_DATA-WRBTRC = IT_DATA-WRBTR.
APPEND IT_DATA.
ENDIF.
IT_DATA-VBELNR = IT_BKPF-BELNR.
IT_DATA-BELNR = ' '.
IT_DATA-GJAHR = ' '.
IT_DATA-BLDAT = ' '.
IT_DATA-BLART = ' '.
IT_DATA-ZUONR = ' '.
*DiscountVBELNR
CLEAR WRK_DEDWRBTR.
SELECT SUM( WSKTO ) INTO WRK_DEDWRBTR FROM BSE_CLR
WHERE BELNR_CLR = IT_BKPF-BELNR
AND GJAHR_CLR = IT_BKPF-GJAHR
AND BUKRS IN S_BUKRS.
IF NOT WRK_DEDWRBTR IS INITIAL.
IT_DATA-XBLNR = 'Discount'.
IT_DATA-WRBTR = WRK_DEDWRBTR.
IT_DATA-WRBTR = IT_DATA-WRBTR * - 1.
IT_DATA-WRBTRC = IT_DATA-WRBTR.
APPEND IT_DATA.
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT IT_BKPF.
SELECT SINGLE BUTXT ORT01 LAND1 INTO (IT_DATA-BUTXT,IT_DATA-ORT01,IT_DATA-LAND1)
FROM T001
WHERE BUKRS IN S_BUKRS.
MODIFY IT_DATA INDEX SY-TABIX.
*ENDLOOP.
ENDFORM. " select_data
*& Form print_data
text
--> p1 text
<-- p2 text
FORM PRINT_DATA .
PERFORM OPEN_FORM.
PERFORM WRITE_FORM.
PERFORM CLOSE_FORM.
LEAVE LIST-PROCESSING.
ENDFORM. " print_data
*& Form open_form
text
--> p1 text
<-- p2 text
FORM OPEN_FORM .
CALL FUNCTION 'OPEN_FORM'
EXPORTING
FORM = 'ZFI_PAY_ADV_MODN'
LANGUAGE = SY-LANGU.
ENDFORM. " open_form
*& Form write_form
text
--> p1 text
<-- p2 text
FORM WRITE_FORM .
LOOP AT IT_BKPF.
IF SY-TABIX GT 1.
AT NEW BELNR.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'NEW'
WINDOW = 'MAIN'.
ENDAT.
ENDIF.
LOOP AT IT_DATA WHERE VBELNR = IT_BKPF-BELNR.
DATA : BEGIN OF IT_HKONT OCCURS 0,
HKONT LIKE BSIS-HKONT,
WRBTR LIKE BSIS-WRBTR,
END OF IT_HKONT.
REFRESH IT_HKONT.
CLEAR IT_HKONT.
SELECT HKONT WRBTR INTO TABLE IT_HKONT FROM BSIS
WHERE BELNR = IT_BKPF-BELNR
AND GJAHR = IT_BKPF-GJAHR.
DELETE IT_HKONT WHERE HKONT(3) NE '005'.
IF NOT IT_HKONT[] IS INITIAL.
LOOP AT IT_HKONT.
IT_DATA-TOTAL = IT_DATA-TOTAL + IT_HKONT-WRBTR.
MODIFY IT_DATA.
ENDLOOP.
ELSE.
IT_DATA-TOTAL = IT_DATA-TOTAL + IT_DATA-WRBTR.
MODIFY IT_DATA.
ENDIF.
ENDLOOP.
LOOP AT IT_DATA WHERE VBELNR = IT_BKPF-BELNR.
IF IT_DATA-BLART EQ ''. " for invoice Date
IT_DATA-BLDAT = IT_BKPF-BLDAT.
ENDIF.
IT_DATA-LIFNR = IT_BKPF-LIFNR.
IT_DATA-KUNNR = IT_BKPF-KUNNR.
IT_DATA-NAME1 = IT_BKPF-NAME1.
IT_DATA-NAME2 = IT_BKPF-NAME2.
IT_DATA-NAME3 = IT_BKPF-NAME3.
IT_DATA-NAME4 = IT_BKPF-NAME4.
IT_DATA-CITY1 = IT_BKPF-CITY1.
IT_DATA-REGION = IT_BKPF-REGION.
IT_DATA-COUNTRY = IT_BKPF-COUNTRY.
IT_DATA-STREET = IT_BKPF-STREET.
IT_DATA-LANDX = IT_BKPF-LANDX.
IT_DATA-BEZEI = IT_BKPF-BEZEI.
CLEAR : WRK_HBKID , WRK_BANKL.
SELECT SINGLE CHECT ZALDT HBKID INTO
(IT_DATA-CHECT , IT_DATA-ZALDT , WRK_HBKID)
FROM PAYR
WHERE VBLNR = IT_BKPF-BELNR
AND GJAHR = IT_BKPF-GJAHR
AND VOIDR = '00'.
SELECT SINGLE BANKL INTO WRK_BANKL
FROM T012
WHERE HBKID = WRK_HBKID.
AND spras EQ 'EN'.
SELECT SINGLE BANKA INTO IT_DATA-BANKA
FROM BNKA
WHERE BANKL = WRK_BANKL.
MODIFY IT_DATA.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'ITEMS'
WINDOW = 'MAIN'.
ENDLOOP.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'TOTAL'
WINDOW = 'MAIN'.
ENDLOOP.
ENDFORM. " write_form
*& Form close_form
text
--> p1 text
<-- p2 text
FORM CLOSE_FORM .
CALL FUNCTION 'CLOSE_FORM' .
ENDFORM. " close_formHi
Could you tell us what fields are not updated?
Regards,
Raj -
iPod 4,1 will not update to iOS 7. I updated my iMac to 10.9.1 (maverick). Latest Numbers version on iMac is not compatible with Numbers on iPod. Ideas? Can I go back a version with Numbers? I downloaded old version of Numbers 2.0.1 from DVD but with both versions the 2.0.1 will not open. So both versions are present but only the new version functions. I tried to drag the new version to the trash but the old version still runs error message and will not open. I did not try to restart with the new version in the trash.
Maybe. See:
Reverting to previous version of Numbers -
IPod will not update in iTunes with Windows Vista
Every time I connect my ipod to my computer, my computer locks up and it does not update. The only way I can even connect my ipod is to use manual update.
iTunes does not yet support Windows Vista. There are numerous problems running iTunes on it. The latest release of iTuens 7.1 fixed some of them but not all.
-
Previews in Adobe Bridge in Essentials View do not update after manipulation in Adobe Camera Raw
When I open a RAW file in Bridge and manipulate it in ACR, the preview is not updated in Bridge Essentials View. The only way I can get it to update the preview is to open the file in "Preview" view, then it updates and looks fine in Essentials view.
Is Bridge set up to store the ACR modifications to those XMP files? Only then it can update the preview right after working on it. Else you need to refresh the preview cache.
-
Can not update request in data target
Hi,
We have a process chain for master data (10 parallel) loads. One of the load
failed with error "can not update request REQU_46xxxxxxxxxxxxxx in data target".
When I checked the InfoPackage
(a) update: full load
(b) it has data selection
(c) processing :PSA and then to data targets
(d) Data targets: update in all data targets for which active rules exist.
But I do not see any list of data targets here.
Can some one please suggest me how do I correct this load failure.
ThanksHi Wondewossen, NS and Nagesh,
Thanks for the information. I am in support, and the developer is
not here now.
I have checked Header tab in the monitor, in this there
is a update symbol and infosource name and an -->
but after arrow there is nothing.
when I click on this I get a message
"No active update rules exist".
Can you please advice me how to I correct this.
Thanks -
I export part of my master catalog to a laptop. I include the image files so I can edit the files at full res. After managing and editing files I import the catalog back into the master catalog. When importing I check to replace metadata, develop settings and negative files. I have been running some tests to be sure all my work is being captured in the master catalog by this process. I find that if I change develop settings or photo ratings this is detected when the file is imported and the data in the master catalog is updated properly. The surprise is that if I delete files or move files among folders in the exported catalog these changes are not detected and these changes are not updated inthe master catalog. It seems bizarre to me that such changes are not detected but I do not see how to get LR to recognize these changes and include them in the catalog update. Without this capability I don't see how to use catalogs to move part of a catalog to another computer for edits and file management and then move back to the master catalog.
There are various reasons why Lightroom works this way, but you'll need use pick flags to indicate photos to be deleted, and other metadata like colours or collections.
-
Can not update tab if its not the default sub-tab.
Can not update tab if its not the default sub-tab.
JDeveloper Version 10.1.2.1.0 (Build 1913)
Hi. I have a problem with a lovOpenWindowAction
The UIX is created with a master UIX and have several sub-tab that is included as UIX-pages.
The lovOpenWindowAction lies in the included UIX-page
The sub-tab I have a problem with has a table with users. Then I have a Create New button than I want to click on and select a new user that should be included in the table in the sub-tab.
When I click on the button I open a LOV-window. Here I select the user that I want to add.
In the LOV Action-class I save my new value in the database. Then in the method onLovUpdate I update the iterator with the new values from the database.
But in my GUI the subtab is not updated until I click on it.
But if I make the subtab the default subtab then it all works just fine and the GUI is updated directly.
Here is the code for the tableAction in the subtab. This code lies in an included UIX-page. Target is the table id.
<tableActions>
<button text="Create New" id=" createNewRollperson" accessKey="N">
<primaryClientAction>
<lovOpenWindowAction destination="FiskeRollpersonerLOV.do"
source=" createNewRollperson "
targets="joinedRollpersfiskeer message"/>
</primaryClientAction>
</button>
</tableActions>
Here is some code from the master UIX-page
<subTabLayout id="flikar">
<subTabs>
<subTabBar selectedIndex="${ui:defaulting(param.index,0)}">
<contents>
<link id="resorFlik" text="Resor"
disabled="${sessionScope.fiske.id == null}"
selected="${(param.source == 'resorFlik') or empty param.source}">
<primaryClientAction>
<firePartialAction event="changeTab" targets="flikar globalHeader">
<parameters>
<parameter key="source" value="resorFlik"/>
</parameters>
</firePartialAction>
</primaryClientAction>
</link>
<link id="rollpersonerFlik" text="Rollpersoner"
disabled="${sessionScope.fiske.id == null}"
selected="${param.source == 'rollpersonerFlik'}">
<primaryClientAction>
<firePartialAction event="changeTab" targets="flikar globalHeader">
<parameters>
<parameter key="source" value="rollpersonerFlik"/>
</parameters>
</firePartialAction>
</primaryClientAction>
</link>
</contents>
</subTabBar>
</subTabs>
<contents>
<switcher childName="${param.source}"
defaultCase=ResorFlik">
<case name="resorFlik">
<include node="${ctrl:parsePage(uix, 'includes/ResorFlik')}"/>
</case>
<case name="rollpersonerFlik">
<include node="${ctrl:parsePage(uix, 'includes/FiskeRollpersonerFlik')}"/>
</case>
</switcher>
</contents>
</subTabLayout>
What am I missing?? I cant have this subtab as the default subtab! Please help me with a solution!hi,
Change the condition type to manual entry.
or
for example delivery costs will be different at the time of PO and actual delivery costs then at the time of invoice we select planned delivery costs and settle them first with the actual delivery cost.
Thanks & Regards,
Kiran -
i have modify the data STREET to "ANG MO KIO"
http://i192.photobucket.com/albums/z231/yzme/d1.gif
but the data in server still "HEAVEN ST"
http://i192.photobucket.com/albums/z231/yzme/d2.gif
I am using Time2Way T01, if it is when i sync the data will be uploaded, or do i need to configure somewhere to get the data upload ?
if the data in client and middleware is different, when i sync , the data from the middleware will again download to the client replace the modified values
OR
the data in the client will uploaded to the middleware and trigger the MODIFY bapi wrappers ?
<b>
when i check my MEREP_MON, and MEREP_LOG there is no data inside this meaning after i changed the values and perform the sync, Inbox and Outbox still remain the previous data as well as inside the MEREP_LOG,
is it the bapi wrapper not call by the client ?
</b>
and i find out that my bapi not get called, what additional code should i add instead of the code below.
DO I NEED TO IMPLEMENT SOME CODE FOR UPLOADER ??
do i have to change the reqDirectSync="true", if yes, how do i changed, just change inside the editor, or there is somewhere to configure in sapgui
after i changed the data , i try to sync, and i check on merep_mon
what specific or additional steps i need to configure, on uploader / receiver or synchronizer
<b>i do not implement any syncBoDelta or global reset ?</b>Can someone explain the term "delta" to me and its activities?
if i have upload something, and sync, the Inbox should have something right ??
i just put add this code to modify my records
public String modifyRecord(String eventName,boolean didNavigate){
String syncBoName="ZCON";
String syncKey="0001230297";
tableViewBean.setString(syncBoName +" "+syncKey);
System.out.println("SyncBoName: " +syncBoName + " syncKey: " +syncKey);
tcp = TableContentProvider.instance(syncBoName);
tcp.modifyTable(syncBoName,syncKey); return JSP_DETAIL_SYNCBOINSTANCE;
public void modifyRecord(String syncBoName,String syncKey){
SyncBoDescriptor sbd=null;
sbd=descriptorFacade.getSyncBoDescriptor(syncBoName);
SyncBo sb=null;
try{
System.out.println("bp 2");
sb=dataFacade.getSyncBo(sbd,syncKey);
}catch(PersistenceException pex){
System.out.println("Exception in modifyRecordLoc:" +pex.getMessage());
SmartSyncTransactionManager transactionManager;
try{ transactionManager=dataFacade.getSmartSyncTransactionManager();
if(!transactionManager.isTransactionStarted()){
transactionManager.beginTransaction();
boolean b8=false;
b8=setHeaderFieldValue2(sb,"STREET","ANG MO KIO");
transactionManager.commit();
SetSendType();
listAllOutDelta();
checkInboxConflict();
}catch(Exception e){
System.out.println("Exception in modifyRecordAmt2:" +e.getMessage());
public void checkInboxConflict(){
ErrorConflictInbox errorConflictInbox= SmartSyncRuntime.getInstance().getInboxNotifier().getErrorConflictInbox();
MeIterator iter;
SyncBoResponse resp;
try {
iter= errorConflictInbox.getAllSyncBoResponses();
while(iter.hasNext()){
resp= (SyncBoResponse)iter.next();
String bo=resp.getSyncBoDescriptor().getSyncBoName();//SyncBo Name
String state=resp.getSyncBoResponseState().toString();
String res=resp.getResponseType().toString();//Get the SyncBo response type (conflict or ERROR)
String msg=resp.getText();// This will return the exact message from the server
System.out.println("bo:" +bo +" state: " +state +" res: " +res +" msg:" +msg);
System.out.println("state:" +resp.getSyncBoResponseState().toString());
if(resp.getSyncBoResponseState().equals(SyncBoResponseState.INITIAL)){
String a=resp.getSyncBoResponseState().toString();
resp.acceptClientSyncBo();
String b=resp.getSyncBoResponseState().toString();
resp.delete();
System.out.println("state1: " +a +"state2: " +b);
boolean syncStatusComplete= SmartSyncRuntime.getInstance().getInboxNotifier().isSyncStatusComplete();
System.out.println("syncStatus:" +syncStatusComplete);
}catch (Exception e) {
e.printStackTrace();
public void listAllOutDelta(){
SyncBoOutDeltaFacade deltFac=SmartSyncRuntime.getInstance().getSyncBoOutDeltaFacade();
MeIterator allDelta;
try {
allDelta = deltFac.getAllDelta();
while(allDelta.hasNext()){
SyncBoOutDelta outDelta=(SyncBoOutDelta)allDelta.next();
System.out.println("SyncKey:" +outDelta.getSyncKey() +" Action:" +outDelta.getAction()
+" State:" +outDelta.getStateId() +" SendType:"+outDelta.getSendType());
} catch (SmartSyncException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (PersistenceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
public void SetSendType(){
SmartSyncRuntime ssRuntime = SmartSyncRuntime.getInstance();
SyncBoOutDeltaFacade boDeltaFacade = ssRuntime.getSyncBoOutDeltaFacade();
SyncBoDescriptorFacade descF = ssRuntime.getSyncBoDescriptorFacade();
SyncBoDescriptor myBO = descF.getSyncBoDescriptor("ZCON");
boDeltaFacade.setSendType(myBO, SyncBoOutDeltaSendType.SEND_DIRECT);
//SyncManager.getInstance().synchronizeWithBackend(VisibilityType.USER_SHARED);
public boolean setHeaderFieldValue2(
SyncBo sb,
String headerFieldName,
Object value) {
SyncBoDescriptor sbd = sb.getSyncBoDescriptor();
//RowDescriptor trd = sbd.getTopRowDescriptor();
System.out.println("bp 10");
RowDescriptor trd=sbd.getRowDescriptor("010");
System.out.println("bp 11");
FieldDescriptor fd = trd.getFieldDescriptor(headerFieldName);
System.out.println("fd:" +fd.getFieldName());
if (fd != null) {
BasisFieldType bft = fd.getFieldType();
//Row header = sb.getTopRow();
System.out.println("bp 12");
//Row header = null;
Row[] header=null;
//try {
//header = sb.getRow("0001211181");
//header=sb.getTopRow();
header=getItemInstances(sb,"010");
if(header==null){
System.out.println("is null");
}else{
System.out.println("not null");
//} catch (PersistenceException e1) {
// TODO Auto-generated catch block
// System.out.println("Exception getRow:" +e1.getMessage());
// e1.printStackTrace();
System.out.println("bp 13");
try {
// Integer operator
if (bft == BasisFieldType.N) {
System.out.println("Numeric");
NumericField nf = header[0].getNumericField(fd);
if (nf != null) {
BigInteger ii = new BigInteger(value.toString());
nf.setValue(ii);
return true;
} else {
return false;
// Character operator
if (bft == BasisFieldType.C) {
System.out.println("Character");
CharacterField cf = header[0].getCharacterField(fd);
if (cf != null) {
cf.setValue(value.toString());
return true;
} else {
return false;
// Decimal operator
if (bft == BasisFieldType.P) {
System.out.println("Decimal");
DecimalField df = header[0].getDecimalField(fd);
System.out.println("bp 1.1");
if (df != null) {
System.out.println("bp 1.2");
BigDecimal bd = new BigDecimal(value.toString());
System.out.println("bp 1.3");
df.setValue(bd);
System.out.println("bp 1.4");
return true;
} else {
System.out.println("bp 1.5");
return false;
// Similar operation for time and date operator fields
if (bft == BasisFieldType.D) {
System.out.println("Date");
DateField df = header[0].getDateField(fd);
if (df != null) {
if (value.toString().equals("0")) {
Date dat = Date.valueOf("0000-00-00");
df.setValue(dat);
} else if (!value.toString().equals("")) {
Date dat = Date.valueOf(value.toString());
df.setValue(dat);
} else {
Calendar cal = Calendar.getInstance();
java.sql.Date bd =
new java.sql.Date(cal.getTime().getTime());
df.setValue(bd);
return true;
} else {
return false;
// Similar operation for time and date operator fields
} catch (SmartSyncException ex) {
System.out.println(ex.getMessage());
} catch (PersistenceException e) {
System.out.println(e.getMessage());
return false;
SyncType: T01 Wrapper: GetList,GetDetail,Modify
<?xml version="1.0" encoding="utf-8" ?>
- <MeRepApplication schemaVersion="1.1" id="ZCON" version="01">
<Property name="CLIENT.BUILDNUMBER" />
<Property name="C_APPLRESOLVE" />
<Property name="DATA_VISIBLE_SHARED">X</Property>
<Property name="E_APPLRESOLVE" />
<Property name="FACADE_C_CLIENT">X</Property>
<Property name="FACADE_E_CLIENT">X</Property>
<Property name="HOMEPAGE.INVISIBLE" />
<Property name="INITVALUE" />
<Property name="RUNTIME">JSP</Property>
<Property name="TYPE">APPLICATION</Property>
- <SyncBO id="ZCON" version="1" type="timedTwoWay" allowCreate="false" allowModify="true" allowDelete="false" reqDirectSync="false" downloadOrder="1">
- <TopStructure name="TOP">
- <Field name="SYNC_KEY" type="N" length="10" decimalLength="0" signed="false" isKey="true" isIndex="true">
<Input type="create">false</Input>
<Input type="modify">false</Input>
</Field>
- <Field name="PERSNUMBER" type="N" length="10" decimalLength="0" signed="false" isKey="false" isIndex="false">
<Input type="create">false</Input>
</Field>
- <ChildStructure name="010">
- <Field name="SYNC_KEY" type="N" length="10" decimalLength="0" signed="false" isKey="true" isIndex="true">
<Input type="create">false</Input>
<Input type="modify">false</Input>
</Field>
- <Field name="PERSNUMBER" type="N" length="10" decimalLength="0" signed="false" isKey="false" isIndex="false">
<Input type="create">false</Input>
</Field>
- <Field name="CITY1" type="C" length="40" decimalLength="0" signed="false" isKey="false" isIndex="false">
<Input type="create">false</Input>
</Field>
- <Field name="CITY2" type="C" length="40" decimalLength="0" signed="false" isKey="false" isIndex="false">
<Input type="create">false</Input>
</Field>
- <Field name="STREET" type="C" length="40" decimalLength="0" signed="false" isKey="false" isIndex="false">
<Input type="create">false</Input>
</Field>
- <Field name="HOUSE_NUM" type="C" length="40" decimalLength="0" signed="false" isKey="false" isIndex="false">
<Input type="create">false</Input>
</Field>
- <Field name="REGION" type="C" length="40" decimalLength="0" signed="false" isKey="false" isIndex="false">
<Input type="create">false</Input>
</Field>
</ChildStructure>
</TopStructure>
</SyncBO>
</MeRepApplication>
Message was edited by:
yzme yzme<u>my intention is very simple, i just need to update a field in a row and update to the middleware so that the backend will reflect the changes. </u>
>2 if i set the conflict/error handling to application, then i should have to implement some code for it, right ?
>3) List syncbooutdelta
<b>SyncKey:0001233035 Action:M SendType:SEND</b>
doesnt it mean that when i sync , the uploader will pick up this data and do a modification ??
i have change the metadata like this
<SyncBO id="ZCON" version="1" type="timedTwoWay" allowCreate="false" allowModify="true" allowDelete="false" reqDirectSync=<b>"true" </b>downloadOrder="1">
1) i try to sync the application and check the worklist monitor, there is nothing in the inbox ? how come ?
2)if i test using emulator, i try to modify a value and execute, i am getting the following error.
<u>
Header action from mobile="MOD", R/3 action="ADD"
Return code 1 (DOWNLOADER)
</u>
i try to modify not "Add"
3) I am using Time 2 Way , how to check it is synchronous or asynchronous ? in merep_sbuilder, the default asyn. is checked, meaning async ??
the type is T01 , ASYNC
4)
public void checkInboxConflict(){
ErrorConflictInbox errorConflictInbox= SmartSyncRuntime.getInstance().getInboxNotifier().getErrorConflictInbox();
MeIterator iter;
SyncBoResponse resp;
try {
iter= errorConflictInbox.getAllSyncBoResponses();
while(iter.hasNext()){
resp= (SyncBoResponse)iter.next();
String bo=resp.getSyncBoDescriptor().getSyncBoName();//SyncBo Name
String state=resp.getSyncBoResponseState().toString();
String res=resp.getResponseType().toString();//Get the SyncBo response type (conflict or ERROR)
String msg=resp.getText();// This will return the exact message from the server
System.out.println("bo:" +bo +" state: " +state +" res: " +res +" msg:" +mtext);
boolean syncStatusComplete= SmartSyncRuntime.getInstance().getInboxNotifier().isSyncStatusComplete();
System.out.println("syncStatus:" +syncStatusComplete);
}catch (Exception e) {
e.printStackTrace();
<u>bo:ZCON state: INITIAL res: CONFLICT msg:Conflict: R/3 = delete, device = modify
SyncStatus=true (complete)
</u>
5) after that i change my code to this
while(iter.hasNext()){
if(resp.getSyncBoResponseState().equals(SyncBoResponseState.INITIAL)){
String a=resp.getSyncBoResponseState().toString();
String a1=syncBO.getSyncState().toString();
resp.acceptClientSyncBo(); //No transaction stated to commit
resp.delete();
String b=resp.getSyncBoResponseState().toString();
String b2=syncBO.getSyncState().toString();
System.out.println("state1: " +a +"state2: " +b);
System.out.println("SyncState1: " +a1 +"SyncState2: " +b1);
<u>state1: INITIAL state2: RESOLVED </u>
<u>SyncStatus1:QUANRANTINE SyncStatus2: INCONSISTENT</u>
and i try to sync ...no data in worklist
6)i try to list out all the delta to be uploaded
ListAllOutDelta to be upload
<u>SyncKey:0001233349 Action:I State:99925F8E24DFFE49A4563C5E018E9B61 SendType:SEND
</u>
i am modifying the rows, not Insert a new row, the Action:'I' instead of 'M', pls clarify on this.
after i sync, i found out that there is 2 record with different syncKey but same primary key and all attributes appear to be same except the attribute that i changing.
<u>SYNCKEY PERSNUMBER CITY STREET HOUSENO</u>
0001230298 000000000 HELL <u>ANG MO KIO</u> 0123456789 (modified record)
0001230299 000000000 HELL <u>HEAVEN ST</u> 0123456789(old record)
i check the application and found out that the previous record that i modify have its value changing locally but not updated into the backend, after sync, there is another record downloaded into this application which is the old record before i modify with different syncKey.
but when i check the backend table, there is only 1 record inside, because i dont implement the 'Create' Bapi.
does it make sense ?
7) when i check my client , the data is persisted with modified value , but the changes is not reflected in the server, how come the data in client is not uploaded to the server.
acceptClientSyncBo will make the client wins how come the data is not get updated in server ?
Re: Regarding modifying Sync BO
According to him, can anyone translate the things highlighted below
for modifying one sync bo instance , there is no need to use createUnlinkedCopy()..
just use like this..
sb = dataFacade.getSyncBo(sbd,key);
SmartSyncTransactionManager transactionManager;
transactionManager = dataFacade.getSmartSyncTransactionManager();
transactionManager.beginTransaction();
setHeaderFieldValue(sb,"PERSNUMBER","9866321467");
setHeaderFieldValue(sb,"FIRSTNAME","RajaSekhar");
setHeaderFieldValue(sb,"LASTNAME","Varigonda");
setHeaderFieldValue(sb,"PROFESSION","Technical Specialist");
setHeaderFieldValue(sb,"***","MALE");
setHeaderFieldValue(sb,"BIRTHDAY","1977-09-28");
setHeaderFieldValue(sb,"HEIGHT","165");
setHeaderFieldValue(sb,"WEIGHT","75");
// Commit the transaction
transactionManager.commit();
setHeaderFieldValue - can be used to set value in new sync bo instance , or modify the instance.
<b>
But one main think here have to consider is , if you have created one Sync Bo instance , not synchronized with back end and u have modified that, then thats just like a creation .So during sync this will call Create Bapi Wrapper.
</b>
But after synchronization , is u are modifying that instance , then it is a modification(will call MODIFY Wrapper in back end during synchronization). u must have the right to modify this instance in the client side.
hope u got it.
u can debug MI Applications in NWDS.
refer this blog written by Arun
/people/arunkumar.ravi/blog/2006/02/22/execute-debug-your-mi-code-from-nwds
let me know , if u have doubts
Regards
Kishor Gopinathan
pls comment... -
Can not update an assignment block with on_new_focus
Hello Experts,
I have the following problem. I created a new component which is similar to the component BP_BPBT to create activities for Business Agreements. In the overview page of the business agreement in WebUI, I have now the assigment blocks "Plannend activities" and "Interaction History".
When I create a new activity in the assigment block "planned activities" with the new button and save the activity with the buttons "SAVE" or "SAVE AND BACK". The new created actity is shown, depending on the "Active Status" , in one of the assignment blocks "Plannend activities" and "Interaction History". When I create an another activity in the same way, the new actiity is not shown in the assignment blocks. But when I reload the page again, I can see the new created activity.
During debugging, I see, that the first creating activity is in the collection in the method ON_NEW_FOCUS. When I create an another activity, the collection is not updated. Here is my coding:
* get collection of dependent nodes
TRY.
entity ?= focus_bo. "BuAg Entity
CATCH cx_sy_move_cast_error.
RETURN.
ENDTRY.
TRY.
lr_entity = entity->get_related_entity( iv_relation_name = 'BuAgBuPaRel' ).
lv_collection = lr_entity->get_related_entities(
iv_relation_name = 'BuilInteractionHistoryRel'
* D022159: Performance optimization
iv_mode = lv_mode ).
Can anyone explain me, why the activities (after the first one) are not in my collection.
Can anyone help me to fix this problem?
Kind Regards,
John H.Hi,
Please check if you have added your entity to collection after you save the entry. It looks like your value is saved in DB but its not reflected on UI because you are not refreshing your collection.
I would suggest that you write a code after you save and commit to refresh your collection of the context node.
Regards,
Bhushan -
Table record is not updated correctly after navigate back from detail page
I have 2 jspx pages one (page A) has a table displaying the employee record, another one (page B) is used to update the selected employee record. On page A, when selecting a record and clicking the 'Details' button I can be navigaed to pag B on which I can modify the record information in a form component. I have one table column 'teamName' which is binding to a LOV at VO layer and on pageB I am using <af:inputComboboxListOfValues> to show a editable LOV list for this attribute, when I input a new value here and save it, I can go back to page A but the team name for this record shows empty, by querying the database I do find the record updated successfully with the changed value. And when I reloaded the page the record can show the new team name value. Why it is not updated in the employee table when immediately navigating back from page B? I have set the table iterator refresh attribut to "always" but still failed. Can anyone help on this issue? Thanks!!
BTW, for other columns (not LOV) they are ok, the table can show the changed value correctly.
Edited by: user774592 on Jul 14, 2011 7:56 PM
Edited by: user774592 on Jul 14, 2011 9:59 PMThanks for reply!
I did exactly the same as what you said. I d&d the data control Commit operation on page B to generate a 'Save' commandToolbarButton with the action attribute set to 'save' which is the from outcome for navigating back to page A. Is there any business logic I need to write here? Currently I have no.
Note: In this case I used an editable LOV, I have a requirment that besides selecting a existing value from the lov, user can also input a new value in the LOV. When going back to page A, I do find the LOV list is updated to contain the new vaule. Just the record in the table shows an empty value instead of the new value. Still do not know why.
Maybe you are looking for
-
Getting error message when burning DVD
I keep getting an error message when I try to burn my DVD in iDVD 08. I have imported the movie in quicktime format from iMovie HD and everything works fine until I go to burn the project. I renders everything else but when it get to the movie it has
-
Hello experts I am trying to upgrade Solman 7.01 to 7.1, with the "new" tool solmanup. As per the upgrade guide the program STARTUP.bat should start the SL controller. But when i run this from commandline i get the following error as SOLMANUPSTARTUP.
-
21.5in iMac 2011 -Display Help
Today I bought a secondary 21.5in HP Monitor for my iMac. (Dual Display Setup) Currently neither my iMac (OSX MNT Lion) or the display can see each other. I am using a Belkin Thunderbolt to HDMI connector and then an HDMI to DVI-D cable. Is there som
-
Hi , i was wondering why i get this stacktrace below when i access JSP page [#|2006-10-25T10:58:40.919+0800|SEVERE|sun-appserver-pe9.1|javax.enterprise.system.container.web|_ThreadID=11;_ThreadName=httpWorkerThread-80-0;_RequestID=b573afc9-2776-432e-
-
4th gen click-wheel iPod not syncing
I have a 40GB 4th Gen click-wheel iPod that although works fine will not sync with my iTunes. I have done all normal troubleshooting items (5R's, restored factory settings, etc.). I am running it on an HP computer and have all software versions up-to