BDC for ME11 with SOOD object
Hi Friends
I am working on data transfer for ME11, info records, i have to upload Note(Text) as well in this , but button for this text dos'nt come in recording.
how to upload this SOOD object..
thanks
regards
siddharth
Hi,
you can load the InfoRecords by following LSMW objects including the Long texts:
Object 0060 Purchasing info rec.
Method 0000
Program name RM06IBI0
Program type B Batch input
Use appropriate structure to load the long text.
Hope this helps.
Regards, Murugesh
Similar Messages
-
BDC for IW52 with giving Priority
Hi All,
I'll we very thankful if any one please help me in doing BDC for IW52 with giving Priority value .
Actually I don't able to find Priority option in IW52.
It'll be highly applicable if any one help me for this.
ThanksHi,
I think you can make use of the FM "ALM_ME_NOTIFICATION_CHANGE" instead of IW52 BDC.
Regards,
Smart Varghese -
How to supress a warning message in BDC for ME11 Tcode
Hi Expert,
I am doing a BDC report for ME11 Tcode and some of warning is ignorable for this transaction code,how can we suppress these warning through BDC program, is it possible or will have to make some changes changes in TCODE(ME11) itself.hi,
if the warning message coming in a pop-up window then it can be supressed in the following way.
1. comment the lines of the code of bdc recording of that pop-up screen along with the perform of bdc ok code '=ENTE".
2. use the structure ctu_params and fill the correspondings fiels, particularly the field nobinpt = 'X' and then use this structure in the call transcation statement as
call transcation 'ME11'
using bdcdata
options from opt ( structure of ctu_params )
3. At the time of recording use the option of check box " no batch input session ".
regards,
Alok -
BDC for MM with different material types.
Hi, Can anyone explain me how the MM01 tcode can be handled in BDC, when material with different material types are present in the flat file. Different material types have different views and hence different recordings....How to handle this scenario?
Based on different types of material, you can able to find out which all views are required to call through BDC. Try to find out views by using tables MARA, MAKT, MARD, MARC etc. Once it is confirmed you can call views using screen numbers.
Here I don't think so more than one recording is required. Record MM01 transaction using Basic Data1, once you go inside the transaction select all the views required to complete the MM01 transaction. It will record all the views (hence screen numbers), then you can switch/call views based on screen numbers.
Hope this helps you to resolve your query. -
BDC for notification with sales order
Hi,
I have to code a BDC program for IW51 : Service Notification with sales order.
The problem is that in simulation mode (SHDB) the button "Sales order" is not working !!!
although it works well in transaction mode!
please help!
A+
Ihsenhi all,
so anyone came across any BAPI or FM that creates Orders from Notification.
My requirement is similar to "Order Explode" functionality in WPS1 transaction (MEB). For two notificaitons, if the task list having the same operation and same type, then a single order gets created.
I want to know whether any FM/ BAPI is available that creates Order in reference to Notification. I just want to simulate Order creation.
Waiting for reply.
Debs -
BDC for VA01 with multiple line items
Hi,
My client is 4.6c version, I have created a BDC program for transaction VA01 which will have multiple line items. I'm able to enter 12 items in the first instance, then 12 items next time. But I'm not doing any P+..System is automatically taking me to first item after reaching item 12 every time.
But I have a doubt in production system also I will have only 12 items every time to enter..If not my program may not work..
I'm calling BDC using following statment..
CALL TRANSACTION 'VA01' USING BDCDATA
MODE 'N'
UPDATE 'S'
MESSAGES INTO lt_message.
Please suggest me the solution.
Regards
Jaker.I had a similar problem with goods movements in a CO11N BDC I wrote. Here's how it was fixed:
DATA: lcl_opt TYPE ctu_params.
lcl_opt-defsize = 'X'.
CALL TRANSACTION 'CO11N' USING i_bdctbl OPTIONS FROM lcl_opt
MESSAGES INTO messco11n.
The option "defsize" makes sure that the screen always contains the same number of lines as it goes through the BDC. That way, you can write in the paging logic without having to worry about the number of lines that appear on a user's screen as it may vary depending on how their screen resolution is set up. -
Bdc for MM01 with classification view
Hi all,
I need to create materials using mm01 with classification view. since there is no bapi supporting this view, i am ding by bdc.
The problem is in classification view once i give the class type and name a screen pops with caption
characteristic value assignment, but theere are no charateristics displayed - wat values do i have to enter here >
once i leave this screen the characteristics show up one after the other and i can load the details. but then while tryin to save error comes staing incnsisitent value assigned. wat do i ener in the intermediate screen t avoid this error.
thankshi when you are creating a classification view with characteristics.. you need to do all at once... you cannot modify..
all you can do is delete the whole view and create with all the changed again.. I dont memorize the BAPI .. but you have BAPIdelete.. BAPIadd.. -
Poor quality Export for HD with moving objects
When I export from iMovie6 any moving image is very poor quality. I am using a Sony HDR-HC1 and trying to export at the highest possible settings.
When the image is still the quality is very good, but if anything moves the image goes "wobbly" and "jigsaw" like. Panning shots are hopeless and anyone walking in the shot goes wobbly.
The original capture image seems fine, so I assume it is an exporting problem. Exporting at lower setting, ie for an iPod, the image is great.
I have tried all different setting, some are better than others.
Can anyone help?Your description of the problem - a 'comb' effect - sounds as if the "fields" which make up the resultant picture have been put together in reverse.
(..You don't normally see 'interlaced' video in iMovie's playback window - you normally see just a single field of the two, to make the picture clearer and simpler to display..)
[..A video picture's generally made up of two "fields" which each comprise half the number of lines down the screen: one field comprises the odd-numbered lines, and the other the even-numbered ones. Your exported video should be encoded with the lower (2nd) field first ..as described in this Apple document ..and the problem's mentioned here as well..]
However ..you said in your first post that "..I am using a Sony HDR-HC1 and trying to export at the highest possible settings.."
This is an HDV camcorder, and you didn't say if the original footage which you shot was HDV or normal DV. (HDV is recorded differently from normal DV, as it's recorded in a more compressed format, and it has to be automatically 'unscrambled' by Apple's Intermediate Codec while you're importing it into iMovie HD.)
It seems as if somewhere along the chain of importing>editing>exporting, the fields are being reversed, so that you get this jumpiness on replay when QuickTime tries to deliver a "highest quality" interleaved replay of both fields:
Ah ..sudden thought: you mentioned that you exported thro' iDVD: "..I have used iDVD by dropping it into a DVD theme and it seems to work ok, although the playback is a little jumpy, not quite as good I would have expected.."
You may have left the iDVD settings at their default 'NTSC' instead of switching them to PAL.
Check your iDVD Preferences ..that may be the problem. -
Hi all,
i am doing BDC for XK01 with Line Item for Bank Details(Table Control..)
With 3 Internal table
IT_dummy to get the flat file
IT_vend for Header details
IT_bank for Item Details
in this there is a Nested loop
Loop at it_vend.
perform bdc
loop at it_bank.
concatenate................
endloop.
endloop.
because of the above nested loops..it's bit slow..
& i am trying to do with a single internal table..
The problem is..
with the header data it's not picking all the item data(it's picking only one..)..help me in resolving the problem..
Below the code..
REPORT ZMM_BDCTC1 NO STANDARD PAGE HEADING LINE-SIZE 255.
PARAMETER:P_FILE TYPE RLGRAP-FILENAME.
DATA BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF IT_DUMMY OCCURS 0,
TYP,
DES(255) TYPE C,
END OF IT_DUMMY.
DATA:DELIMITER VALUE ',',
cnt(4) TYPE N,
L_FNAM(30) TYPE C,
FILENAME TYPE STRING.
TYPES:BEGIN OF TY_FINAL,
N(4) TYPE C,
LIFNR TYPE RF02K-LIFNR,
BUKRS TYPE RF02K-BUKRS,
EKORG TYPE RF02K-EKORG,
KTOKK TYPE RF02K-KTOKK,
NAME1 TYPE LFA1-NAME1,
SORTL TYPE LFA1-SORTL,
LAND1 TYPE LFA1-LAND1,
AKONT TYPE LFB1-AKONT,
FDGRV TYPE LFB1-FDGRV,
WAERS LIKE LFM1-WAERS,
M(4) TYPE C,
BANKS TYPE LFBK-BANKS,
BANKL TYPE LFBK-BANKL,
BANKN TYPE LFBK-BANKN,
KOINH TYPE LFBK-KOINH,
END OF TY_FINAL.
DATA: IT_FINAL TYPE TABLE OF TY_FINAL,
WA_FINAL TYPE TY_FINAL.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
IMPORTING
FILE_NAME = P_FILE.
FILENAME = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = FILENAME
FILETYPE = 'ASC'
tables
data_tab = IT_DUMMY.
START-OF-SELECTION.
LOOP AT it_dummy.
IF it_dummy-typ = 'H'.
SPLIT it_dummy-des AT delimiter INTO WA_FINAL-lifnr "Populating Header Table
WA_FINAL-bukrs
WA_FINAL-ekorg
WA_FINAL-ktokk
WA_FINAL-name1
WA_FINAL-sortl
WA_FINAL-land1
WA_FINAL-akont
WA_FINAL-fdgrv
WA_FINAL-waers.
WA_FINAL-N = WA_FINAL-N + 1.
WA_FINAL-M = WA_FINAL-M + 1.
ELSEIF it_dummy-typ = 'I'.
SPLIT it_dummy-des AT delimiter INTO WA_FINAL-BANKS
WA_FINAL-BANKL
WA_FINAL-BANKN
WA_FINAL-KOINH.
APPEND WA_FINAL TO IT_FINAL.
ENDIF.
ENDLOOP.
LOOP AT IT_FINAL INTO WA_FINAL.
WRITE:/ WA_FINAL-N,
WA_FINAL-LIFNR,
WA_FINAL-BUKRS,
WA_FINAL-EKORG,
WA_FINAL-KTOKK,
WA_FINAL-NAME1,
WA_FINAL-SORTL,
WA_FINAL-LAND1,
WA_FINAL-AKONT,
WA_FINAL-FDGRV,
WA_FINAL-WAERS,
WA_FINAL-M,
WA_FINAL-BANKS,
WA_FINAL-BANKL,
WA_FINAL-BANKN,
WA_FINAL-KOINH.
ENDLOOP.
data: WA_FINAL1 like line of IT_FINAL.
clear WA_FINAL1.
******************BDC STARTS***********************
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = 'ZMM_BDCTAB'
KEEP = 'X'
USER = SY-UNAME.
Clear wa_final.
LOOP AT IT_FINAL INTO WA_FINAL.
WA_FINAL1 = WA_FINAL.
CLEAR BDCDATA[].
AT NEW N.
cnt = 1.
perform bdc_dynpro using 'SAPMF02K' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-KTOKK'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02K-LIFNR'
WA_FINAL1-LIFNR.
perform bdc_field using 'RF02K-BUKRS'
WA_FINAL1-BUKRS.
perform bdc_field using 'RF02K-EKORG'
WA_FINAL1-EKORG.
perform bdc_field using 'RF02K-KTOKK'
WA_FINAL1-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'
WA_FINAL1-NAME1.
perform bdc_field using 'LFA1-SORTL'
WA_FINAL1-SORTL.
perform bdc_field using 'LFA1-LAND1'
WA_FINAL1-LAND1.
perform bdc_dynpro using 'SAPMF02K' '0120'. "ERROR CLEARED
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-KOINH(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
ENDAT.
*ENDON.
IF WA_FINAL1-N = WA_FINAL1-M.
CONCATENATE 'LFBK-BANKS(' cnt ')' INTO L_FNAM.
perform bdc_field using L_FNAM
WA_FINAL1-BANKS.
CONCATENATE 'LFBK-BANKL(' cnt ')' INTO L_FNAM.
perform bdc_field using L_FNAM
WA_FINAL1-BANKL.
CONCATENATE 'LFBK-BANKN(' cnt ')' INTO L_FNAM.
perform bdc_field using L_FNAM
WA_FINAL1-BANKN.
CONCATENATE 'LFBK-KOINH(' cnt ')' INTO L_FNAM.
perform bdc_field using L_FNAM
WA_FINAL1-KOINH.
*ENDDO.
cnt = cnt + 1.
ENDIF.
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'.
*AT NEW LIFNR.
perform bdc_field using 'LFB1-AKONT'
WA_FINAL1-AKONT.
perform bdc_field using 'LFB1-FDGRV'
WA_FINAL1-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'
WA_FINAL1-WAERS.
perform bdc_dynpro using 'SAPMF02K' '0320'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-LIFNR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
AT END OF M.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'XK01'
TABLES
DYNPROTAB = BDCDATA.
ENDAT.
CLEAR WA_FINAL1.
CLEAR WA_FINAL.
ENDLOOP.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
*********************BDC ENDS***********************
Start new screen *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.
Insert field *
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> NODATA.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM.
Flat File is..
HAAA45,1000,1000,0002,NAME45,N,IN,31000,A1,USD
IIN,1000,1021,Name45
IIN,1000,1022,Name45
HAAA50,1000,1000,0002,NAME50,N,IN,31000,A1,USD
IIN,1000,1023,Name50
IIN,1000,1024,Name50Regarding avoiding the loop I have a suggestion, though I have not tried this .
SAP help says " Using the internal table bdc_tab, you can provide any number of screens of the called transaction with input and user actions. " .
Above implies you can load all records in the itab bdc_tab when doing call transaction. Say, your bdc_tabl has 30 records for 1 pass of the transaction. You need to update 10 vendor records. You simply load up all 300 records into bdc_tab. After every 30 record loads, you simulate a 'SAVE' press in your program but do not leave the transaction. Rather you simulate the keystroke that takes you to the first screen of XK01 after the save if not aready there, and start loading up the next transaction. -
How to save a file with smart object?
I have just created a file from LR2, by choosing 'open as smart object' in PS.
I then added a cloning layer and did my cloning.
When I wanted to save the file, instead of PS turning it in into a PSD with the same name, I now suddenly got the 'save as' pop up screen and '-2' as the recommended name. The original folder where the file came from was not shown.
I don't know what that's all about, but I'd prefer it would just save the file as a PSD and automatically show the file alongside the NEF in LR2, like it does when I don't use the 'open as smart object' feature. Is this typical for working with smart objects opened straight from LR2?
Any help will be greatly appreciated.
MarselWell, like this you open the file s a smart object, so if you want to now clone on a layer but want it to be a part of the smart object then you go to the layer panel and click on the smart object's icon there to edit the smart object and you hit save (command S) and it will save with that layer to your original.
then when you click the tab or the window that has the original opened as smart object those changes will be reflected, but you will not see your cloned layer active as that is a part of the smart object and you have to open the smart object to get to it.
What you say! Yes that is what I say that is what a smart object is, you are using the smart object as a part of another document( that is why you are being asked to save as, as this new documents you can now make changes which will not effect the original which is the smart object unless you rasterize it which will make it no longer a smart object.
What good is a smart object, well there are many say you are using this document or image if you wish in say five projects and the image has been retouched and it is determined it should have some more work done to it all you have to do is retouch the smart object and all five projects are updated.
You see smart.
And of course you can d things to all five projects that can be different from one another on other layers without ever destroying the work you have done to the smart object. -
BDC scroll down with OK_CODE '=P+'
Hi All,
I am facing a problem with BDC scoll down. I have written BDC for MB1C with serial numbers. i have 100 serial numbers for my 100 qty. While running BDC i am not able to fill more than 19 rows( max allowed rows for that windaw) . So i have used '=P' OK_CODE.....while excecuting this i am getting error......"P Function not defined".
Can anyone help me ........Following is the my BDC code for looping to enter serial numbers.
MOVE 1 TO v_indx.
*DO V_CNT TIMES.
LOOP AT IT_EXCEL1 WHERE WERKS = IT_EXCEL-WERKS
AND LGORT = IT_EXCEL-LGORT
AND MATNR = IT_EXCEL-MATNR
AND CHARG = IT_EXCEL-CHARG.
perform bdc_dynpro using 'SAPLIPW1' '0200'.
CONCATENATE 'RIPW0-SERNR(' v_indx ')' INTO V_FNAM.
perform bdc_field using 'BDC_CURSOR'
V_FNAM.
perform bdc_field using V_FNAM
IT_EXCEL1-SERNR.
perform bdc_field using 'BDC_OKCODE'
'=P+'.
v_indx = v_indx + 1.
ENDLOOP.Instead of Using '=p+' try with Insert OK CODE IT WILL WORK FINE in your items table .
This is VA01 item table loop condition ..
loop at it_va01a into wa_va01a where index = wa_header-index.
if sy-tabix = 1.
concatenate 'RV45A-MABNR(' idx ')' into fnam.
perform bdc_field using fnam
wa_va01a-mabnr.
concatenate 'RV45A-KWMENG(' idx ')' into fnam.
perform bdc_field using fnam
wa_va01a-kwmeng.
endif.
if sy-tabix >= 2.
idx = 2.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'=POAN'.
concatenate 'RV45A-MABNR(' idx ')' into fnam.
perform bdc_field using fnam
wa_va01a-mabnr.
concatenate 'RV45A-KWMENG(' idx ')' into fnam.
perform bdc_field using fnam
wa_va01a-kwmeng.
endif.
endloop.
Hope this will solve your issue.
Regards,
Alan Babu -
Warning while processing the BDC session for ME11 - create info records
Hi,
I have succesfully created a BDC recording(SHDB) for ME11 transaction. but when I am trying to process the session(SM35) with file having correct data, I an getting a warning message" Please check Unit of measure and conversion factor" eventhogh correct values are being populated in the respective fields. Status of the run is shown as INCORRECT.
Any pointers on avoiding this warning message would be appreciated.
PS: I have tried putting an extra OK CODE with enter button, dint work....try to use transaction SXDA_TOOLS and Object type: BUS3003
Here you will find the standard batch-input program RM06IBI0 -
Problem with uploading data from excel using BDC for tcode f-02
Hi All,
I am uploading data from excel using BDC for tcode f-02. The problem here is, while recording, the values of some fields are recording twice. I dont know why it's happening so. But if I run my abap program, I have to give those fields twice in my excel sheet. Otherwise data does not upload. But it is not the feasible way. We must give those fields once in excel. Please tell me, how I can solve the issue.
With regards,
Rosaline.Hi,
in BDC each and every action is recording. If your press enter in same screen that also recorded once aging may be this is your case repeating field values will appear. we can solve the problem for repeat fields like below.
suppose in your excel having repeated field X1 X2 X3 the X2 contains repeated field X3 means delete the X3 field.
Now In your itab having X1 and X2 fields. While in the LOOP the ITAB pass the X2 field to repeated the fields.
LOOP at ITAB to WA.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'BDC_CURSOR'.
bdcdata_wa-fval = 'RM08M-EBELN'.
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'INVFO-BLDAT'.
bdcdata_wa-fval = wa-X2." 1st time pass the X2 fields
APPEND bdcdata_wa TO bdcdata_tab.
CLEAR bdcdata_wa.
bdcdata_wa-fnam = 'INVFO-BLDAT'.
bdcdata_wa-fval = wa-X2." pass the same value to repeated field
APPEND bdcdata_wa TO bdcdata_tab.
Endloop.
Hope you can understand.
Regards,
Dhina.. -
Issue with MB25 BDC for Dynamic Selection Screen
Hi Experts,
I recorded one BDC for MB25 Tcode regarding to determine Open Reservation(s) in E Mode (Display Mode). I am passing 3 parameters.
1. Plant,
2. Requirement Date
3. Multiple Reservation Numbers i.e. RSNUM from Dynamic Selection i.e. 2nd Button -> Header Data for Reservation -> Reservation -> Multiple Selection Icon.
But while executing that BDC, I need to manually click every time on 'Header Data for Reservation' Tree and then Multiple Selection for Reservation Icon.
I want below steps automatically while executing:
- Open 'Header Data for Reservation' Tree
- Click Reservation
- Open Popup for 'Multiple Selection'.
So no need to click every time on Dynamic Selection Screen i.e. Header Data for Reservation -> Reservation -> Multiple Selection Icon.
Please find attached screen shot for your reference.
Please guide.
Thanks and Regards,
Emon MasterHello Jainam,
submit (sy-repid) with selection-table v_sp
with free selections EXPRESSIONS
via selection-screen.
Without going through the details, dont you think this will cause an inifinite loop as the calling & the called programs are the same.
Please enlighten me !!
BR,
Suhas -
Help with multi-table mapping for one-to-many object inheritance
Hi,
I have posted on here before regarding this (Toplink mapping for one-to-many object inheritance but I am still having problems mapping my object model to my schema.
Object model
The Person and Organisation objects contain base information and have the primary keys person_id and organisation_id. It is important that there is no duplication of person and organisation records, no matter how many times they are saved in different roles.
There are two types of licenceholder in the problem domain, and the ILicenceHolder interface defines information and methods that are common to both. The PersonalLicenceHolder object represents one of these types of licenceholder, and is always a person, so this class extends Person and implements ILicenceHolder.
The additional information and methods that are required by the second type of licenceholder are defined in the interface IPremisesLicenceHolder, which extends ILicenceHolder. Premises licence holders can either be people or organisations, so I have two objects to represent these - PremisesLicenceHolderPerson which implements IPremisesLicenceHolder and extends Person, and PremisesLicenceHolderOrganisation which implements IPremisesLicenceHolder and extends Organisation.
The model is further complicated by the fact that any single Person may be both a PersonalLicenceHolder and a PremisesLicenceHolderPerson, and may be so several times over. In this case, the same basic Person information needs to be linked to several different sets of licenceholder information. In the same way, any single Organisation may be a PremisesLicenceHolderOrganisation several times over.
Sorry this is complicated!
Schema
I have Person and Organisation tables containing the basic information with the primary keys person_id and organisation_id.
I have tried to follow Donald Smith's advice and have created a Role table to record the specialised information for the different types of licence holder. I want the foreign keys in this table to be licenceholder_id and licence_id. Licenceholder_id will reference either organisation_id or person_id, and licence_id will reference the primary key of the Licence table to link the licenceholder to the licence. Because I am struggling with the mapping, I have changed licenceholder_id to person_id in an attempt to get it working with the Person object before I try the Organisation.
Then, when a new licenceholder is added, if the person/organisation is already in the database, a new record is created in the Role table linking the existing person/organisation to the existing licence rather than duplicating the person/organisation information.
Mapping
I am trying to use the toplink mapping workbench to map my PremisesLicenceHolderPerson object to my schema. I have mapped all inherited attributes to superclass (Person). The primary table that the attributes are mapped to is Person, and I have used the multi-table info tab to add Roles as an additional table and map the remaining attributes to that.
I have created the references PERSON_ROLES which maps person.person_id to roles.person_id, ROLES_PERSON which maps roles.person_id to person.person_id and ROLES_LICENCE which maps roles.licence_id to licence.licence_id.
I think I have put in all the relationships, but I cannot get rid of the error message "The following primary key fields are unmapped: PERSON_ID".
Please can somebody tell me how to map this properly?
Thank you.I'm not positive about your mappings, but it looks like the Person object should really have a 1:M or M:M mapping to the Licenceholder table. This then means that your object model should be similar, in that Person object could have many Licenses, instead of being LicenceHolders. From the looks of it, you have it set up from the LicenceHolder perspective. What could be done instead if a LicenceHolder could have a 1:1 reference to a person data object, rather than actually be a Person. This would allow the person data to be easily shared among licences.
LicenceHolder1 has an entry in the LicenceHolder table and Person table. LicenceHolder2 also has entries in these tables, but uses the same entry in the Person table- essentially it is the same person/person_ID. If both are new objects, TopLink would try to insert the same person object into the Person table twice. I'm not sure how you have gotten around or are planning to get around this problem.
Since you are using inheritance, it means that LicenceHolder needs a writable mapping to the person.person_id field- most commonly done through a direct to field mapping. From the description, it looks like roles.person_id is a foreign key in the multiple table mapping, meaning it would be set based on the value in the person.person_id field, but the person.person_id isn't actually mapped in the object. Check to make sure that the ID attribute LicenceHolder is inheriting from person hasn't been remapped in the LicenceHolder descriptor to a different field.
Best Regards,
Chris
Maybe you are looking for
-
Sso from webdynpro app (on WAS 2004s ) to BW web template ( on BW portal )
Guys - We want to give BW Web template(running in 'Y' BW portal server ) as IFrame or URL Link in Webdynpro application ( Running in server X - WAS 2004s). We had setup SSO between java stack of X to Java stack of Y. but when i open url link,it is st
-
When trying to open some files I get the error: "could not read the file because the plug-in could not understand this file" I've posted this before and the answer I got was "save locally, not the network". I did this (it was happening in CS2 at the
-
8.9 6.7cm book question
OK I have compiled a photo book which is the 8.9 6.7 cm size. I understand that these books are sold in packs of 3. If I want 30 books do I enter 30 or 10 into the quantity box? This mat seem like a dumb question but I want to double check before pla
-
I mean who's permission do I need to save or change my own files
-
Bugs & Improvements - Music Player - Shuffle won't shuffle past 300
I have encountered a bug and experiences of major lag functionality while using the Music player. 1. Shuffle appears to not want to shuffle past the #300. It continually bounces around in numbers under that mark no matter what category I'm in and I h