Key mapping Generator Tool
Scenario
One customer has two systems: System A and System B in his landscape. System A serves as the central server for item master data management. He maintains the same set of item master data in System B as that of System B manually. Now, the customer wants to use B1i to keep the item master data in System B automatically up to date as that in System A.
Use this tools to create the keys in the Bizstore.
Please read carefully the documentation before proceeding.
Lot of success,
Felipe
Hi all,
When running the tool I get an exception.
I have created a csv with all the cardcodes in it that need to be pushed. I have uploaded the tool to B1i. I've supplied the parameters and when I click execute the thing throws an exception.
Input path:
D:\B1i\Tools\Mapping Tool\Extracted\B1i2005PL05 or PL06\Reference\Common_BP.csv
Bizflow to execute:
/com.sap.b1i.datasync.keymapping/bfd/KeyMappingGeneration.bfd
Parameters: SenderSysId=0010000100,SenderObjectTypeId=B1.2005_BP,SenderKeyName=CardCode,SenderKeySelectionPath=BOM/BO/BusinessPartners/row/CardCode,ReceiverSysId=0010000102
Exception:
HTTP Status 500 - com.sap.b1i.xcellerator.XcelleratorException: XCE001 Nested exception: com.sap.b1i.xcellerator.XcelleratorException: XCE001 Nested exception: com.sap.b1i.bizprocessor.BizProcException: BPE001 Nested exception: com.sap.b1i.utilities.UtilException: UTE001 Nested exception: com.sap.engine.lib.xml.parser.ParserException: Invalid char #0x0(:main:, row:1, col:414) caused by: com.sap.b1i.xcellerator.XcelleratorException: XCE001 Nested exception: com.sap.b1i.bizprocessor.BizProcException: BPE001 Nested exception: com.sap.b1i.utilities.UtilException: UTE001 Nested exception: com.sap.engine.lib.xml.parser.ParserException: Invalid char #0x0(:main:, row:1, col:414) caused by: com.sap.b1i.bizprocessor.BizProcException: BPE001 Nested exception: com.sap.b1i.utilities.UtilException: UTE001 Nested exception: com.sap.engine.lib.xml.parser.ParserException: Invalid char #0x0(:main:, row:1, col:414) caused by: com.sap.b1i.utilities.UtilException: UTE001 Nested exception: com.sap.engine.lib.xml.parser.ParserException: Invalid char #0x0(:main:, row:1, col:414) caused by: com.sap.engine.lib.xml.parser.ParserException: Invalid char #0x0(:main:, row:1, col:414)
What is wrong?
Kind regards,
Dwight
Similar Messages
-
Hi All,
I have 3 fields in my source file Id,Category (Key Mapping) ,Name.
In Import Manager
I have mapped Remote Key field with ID .
Name with Name
category with Category Qualified Range (A 1-10)
I have source file like this
Id name category
11 10 A
In syndicator i have one more field Material Number .Mapped this with Material Number (should Get generated material Number )
Name with Name
Category with Category
Remote Key value with Material Number
After syndication I am getting Id values in Material Number .(Instead of 1 I am getting 11)
Can any one let me know the solution?Got It . Should not Map Id field with the Remote key in Import Manager.
-
Hi All,
I have some understanding of key mapping internal functionality.
my question is ... should I use this key mapping feature from all look up tables, main table while importing from remote systems?
should all my feilds have REMOTE KEY enabled.
Lets say I have loaded data into my repository from 3 different remote systems(R1,R2,R3) using remote key feature.
Now, I want to see all the records that belong to R1 only or R2 only?
Can this be seen using remote mapping feature? or how can I see only specific records for one remote system.... should i create another field that identifies the source and just map it? ....... generally how do we handle this?
Also, have uploaded the data for my lookup table DIVISIONS,when i try syndicating it for remote R1......
in my destination preview i can see some records that belong to only R2 and R3 also. I mean I am not able to see only the
records belong to R1 system.
I mapped
division <-> div
desc <-> desc
there are two more keys like remote key, v...... Should I also map these keys?
Pls let me know,
Thanks & regards,
VeeHi,
my question is ... should I use this key mapping feature from all look up tables, main table while importing from remote systems?
should all my feilds have REMOTE KEY enabled.
1. It is totally dpeend upon business requirement which table you want to make remote enable.
The main reason to use remote key is to syndiacte the data to remote system specific.
So if you are syndication your subtables to then it is good to make remote key enable.
2. Only tables are remote key enabled not the fields.
Lets say I have loaded data into my repository from 3 different remote systems(R1,R2,R3) using remote key feature.
Now, I want to see all the records that belong to R1 only or R2 only?
Can this be seen using remote mapping feature? or how can I see only specific records for one remote system.... should i create another field that identifies the source and just map it? ....... generally how do we handle this?
This is not possible as standard way.
But workaround is when you map the source field to remote key at destination side in import manager,just make the clone of source field and map it to the new fields to store the system from where the records came.
So in data manager you can search on this field to see only records that is specific to some remote system.
Also, have uploaded the data for my lookup table DIVISIONS,when i try syndicating it for remote R1......
in my destination preview i can see some records that belong to only R2 and R3 also. I mean I am not able to see only the
records belong to R1 system.
I mapped
division <-> div
desc <-> desc
there are two more keys like remote key, v...... Should I also map these keys?
Yes you have to map these fields as well.
Even after mapping this option if you want to syndicate all the remote system records then there is option "override remote keys".after enabling this option there is record generated for each remote system.
hope it helps you.
Thanks,
Sudhanshu -
REP-52005: The specified key userlogin does not exist in the key map file.
Hi,
I am using oracle 11g report server. I am getting the error of REP-52005: The specified key userlogin does not exist in the key map file.
I updated the user_string in cgicmd.dat file. My cgicmd.dat file content is below
; OracleAS Reports Services ;
; CGICMD.DAT ;
; Example CGICMD.DAT Mapping file ;
; Syntax:
; KEY : VALUE
; Where:
; KEY - the first argument of the rwservlet URL request (case sensitive).
; VALUE - command line parameters and/or special parameters.
; Keys can be referenced in the following ways:
; 1. Parameter on command line to the reports servlet
; e.g. http://machine/servlet/rwservlet?KEY
; 2. Parameter on command line to a reports jsp
; e.g. http://machine/mydir/myreport.jsp?KEY
; 3. Within a reports jsp - in the rw:report custom tag
; e.g. <rw:report parameters="KEY">
; In addition to the Reports Server command line parameters, VALUE can include special parameters
; represented as "%X", where X identifies the parameter. Currently recognized special
; parameters:
; %0 - %9 - 0..9 arguments from original rwservlet URL request. Note that %0 refers to the key itself.
; %* - entire contents (all arguments) of original rwservlet URL request.
; %D - request users to input database userid everytime they run the report.
; %P - request for report parameter form in HTML format. It generates the PARAMFORM=HTML
; construction on the first submission of the URL and PARAMFORM=NO upon parameter form submission.
; CGICMD.DAT Usage Notes
; 1. Multiple keys in this file MUST be separated by an EXTRA empty line.
; 2. Extra spaces are ignored. Multi-line entries allowed.
; 3. Lines starting with ";" character are treated as a comments.
; 4. Comments within a key or key value are NOT allowed.
; 5. NLS language support is provided and can be used (encoding should match the one
; used in HTML request - no language conversion of any kind is attempted.
; 6. For %P special parameter, HTML format is by default mapped to the HTMLTABLE format in this release.
; The HTML format in the future may be mapped to the HTMLCSS format.
;;;;;;;;;;;; Example Key Entries
; Example 1: Run a simple breakb report and output to HTML
orqa: report=breakb.rdf destype=cache desformat=html server=repserver
; Example 2: prompt for userid the first time, then use database userid stored in the cookie subsequently.
report_defaultid: report=breakb.rdf destype=cache desformat=html server=repserver
; Example 3: use %D to require user authentication every time
report_secure: report=breakb.rdf destype=cache desformat=html server=repserver1 %D
; Example 4: Take all arguments from URL and send it to the reports server
run: %*
; Example 5: Run breakb report with HTML parameter form.
breakbparam : report=breakb.rdf destype=cache desformat=html server=repserver userid=scott/tiger@mydb %P
; Example 6: take all URL arguments, and also generate a HTML parameter form
runp: %* %P
; Example 7: Run an Express Report. Replace <MYHOST> with the name of the machine running the Express server. The
; builder on-line help explains the rest of the parameters (the /sl, st etc. etc.)
express: report=my_expr_rep express_server="server=ncacn_ip_tcp:<MYHOST>/sl=1/st=1/ct=0/sv=1/" desformat=htmlcss userid=scott/tiger@mydb destype=cache server=repserver
;;;;;;;;;;;; Keys for Reports Demos
; Using default/in-process server.
; JSPs
;charthyperlink_ias: userid="scott/tiger@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=%DBHOSTNAME%)(PORT=%DBPORT%))(CONNECT_DATA=(SID=%DBSID%)))" %*
;charthyperlink_ids: userid=scott/tiger@ %*
;barcodeweb: userid=oe
;parmformjsp: userid=oe
;tutorial: userid=oe
; Paper Reports
;xmldata: userid=oe report=inventory_report.rdf destype=cache p_filelocation="http://%HOSTNAME%:%OC4JPORT%/reports/examples/xml_pds/scripts/" desformat=pdf
;barcodepaper: userid=oe report=shippingmanifest.rdf destype=cache desformat=pdf
;distributionpaper: userid=oe report=inventory_report_dist.rdf distribute=yes destination=exampledistribution.xml
;pdfenhancements: userid=oe report=utf8test.rdf destype=cache desformat=pdf
userlogin : userid=SYMFINBTOTEST@fin10r21 %*
As in the above file i have added a key as userlogin at the end of the file. But the reports server does not take the key that i have given. I followed the same steps provided in oracle docs. I used "showmap" to check the cgicmd file that is used by the reports
http://aspirevm8-17.aspiresys.com:9002/reports/rwservlet/showmap?server=bluQubeReportsAtLocalEnv&destype&userid=SYMFINBT…
It shows me the content of the cgicmd.dat file and it also shows my updations. But in the "Parsed Map File Entries" it does not show my key value pair
Parsed Map File Entries
Return to Top
Key Name
Value
runp
%* %P
breakbparam
report=breakb.rdf destype=cache desformat=html server=repserver userid=scott@mydb %P
report_defaultid
report=breakb.rdf destype=cache desformat=html server=repserver
run
report_secure
report=breakb.rdf destype=cache desformat=html server=repserver %D
express
report=my_expr_rep express_server="server=ncacn_ip_tcp:<MYHOST>/sl=1/st=1/ct=0/sv=1/" desformat=htmlcss userid=scott@mydb destype=cache server=repserver
orqa
report=breakb.rdf destype=cache desformat=html server=repserver
Please help me to to make the key being populated here and being used by the reports server.
Thanks,
Priyauncomment #KEYPMAPFILE=CGICMD.DAT. remove the #
then for development set
reloadkeymap=yes (same file - rwservlet.properties).
Now it should reload everytime. (otherwise for every change u need to restart oc4j_bi_forms)
(For * production* may be you want to set reloadkeymap=no once all testing is done)
see cgicmd.dat for many examples of using keymap file
[ All Docs for all versions ]
http://otn.oracle.com/documentation/reports.html
[ Publishing reports to web - 10G ]
http://download.oracle.com/docs/html/B10314_01/toc.htm (html)
http://download.oracle.com/docs/pdf/B10314_01.pdf (pdf)
[ Building reports - 10G ]
http://download.oracle.com/docs/pdf/B10602_01.pdf (pdf)
http://download.oracle.com/docs/html/B10602_01/toc.htm (html)
[ Forms Reports Integration whitepaper 9i/10g ]
9i - http://otn.oracle.com/products/forms/pdf/frm9isrw9i.pdf
10g - http://www.oracle.com/technology/products/forms/pdf/10g/frm10gsrw10g.pdf
http://www.oracle.com/technology/products/forms/techlisting10g.html
--------------------------------------------------------------------------------- -
Question about key mapping for bank data in SP3 standard Vendor Repository
Hello Colleagues:
The situation is the following:
1) MDM Standard vendor repository does not use Key Mapping for the qualified table data "Bank Details". This makes sense because normally you would pay a vendor in the same account and bank regardless of the company or R/3 system you are paying him from.
2) However, here in my project customer don't have the same bank data for all of the 3 R/3 Systems. Furthermore, they would like to pay a vendor in a diferent bank and account number; depending on where the payment is generated (Company or R/3 system).
Because of this, I though about creating a lookup table for the banks which would use key mapping. I did this and I had no trouble importing bank data in to it.
Now I have this tables:
1) Banks: Lookup Flat:
Country and Bank Key as display fields.
2) Bank Details: Qualified Flat:
2.a) Field "Bank" as a non-qualifier display lookup field which points to a record on "Banks" table (Described in number 1).
2.b) The rest of the fields (Account number, Account holder, Reference, etc.) as qualifier non-display fields.
This aproach works well in data manager.
However, when I try to import vendors from R/3, I'm not being able to map the bank details, not even with "compound field" functionality, because I cannot map the display fields in the "Banks" lookup table (Described in number 1); in the "Map Fields/Values" tab in the Destination fields pane, it won't show any fields from this table.
Also, I'm not very sure if I will be able to syndicate this data back to the R/3 systems correctly, this is; replicate only the banks which exist on each R/3 client system.
Any ideas on how to solve this problem? Please help.
Best Regards,
Jorge.... Where
did Terminal's default keystrokes (e.g., Esc,[5C for
ctrl-right-arrow) come from? They just produce
annoying beeps in bash. Are they standard sequences
for some shell that I don't know about? I
Somewhere deep in the bowels of computer history....for example
http://vt100.net/docs/vt100-ug/table3-6.html
http://www.termsys.demon.co.uk/vtansi.htm#cursor
that is to say, these codes date back to early hardware terminals such as the VT100. I believe. And that is why Terminal is a member of a class of software called "terminal emulators". -
MDM Exception: Key mapping value must be unique. You cannot overwrite key
"ServerException: Key mapping value must be unique. You cannot overwrite key mapping values."
I received such exception when code tried to manipulate Key Mappings of the record.
error was not happen on mdm 5.5 but on 7.1 it sometimes appears.
What is probable reason of this?
How to resolve this ?
Code is approximate so:
String[] keys = keyMapping.getKeys();
if (recordKeyMapping.containsKeyMapping(remoteSystem)) {
recordKeyMapping.replace(remoteSystem, keys);
else {
recordKeyMapping.addKeyMapping(keyMapping);
//Persist
targetRecord.update();
//where methods are:
public void replace(RemoteSystem remoteSystem, String[] keys) {
KeyMapping keyMapping = getKeyMapping(remoteSystem);
if (keyMapping == null) throw new IllegalArgumentException("Can't update keys: key mapping for the system '" + remoteSystem + "' is not found");
else {
keyMapping.setKeys(keys);
public void addKeyMapping(KeyMapping keyMapping) {
RemoteSystem remoteSystem = keyMapping.getRemoteSystem();
for(int i = 0; i < keyMapping.size(); i++) {
addKey(remoteSystem, (String) keyMapping.get(i));
Edited by: Vladimir Grigoryev on Oct 5, 2010 11:26 AMHello -
I am not sure on that coding part. but is it like are you trying to retrive Key Mapping from Memory accelerator. Here this information always needs to be read from Database.
I am sure you also maintained the required attribute for key mapping as in Property in Console should be set as "Yes" and other relevant things properly .
Here also go through the below link for more insight from tools perspective.
http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/30843106-5539-2b10-75a9-da483911b0d9
http://help.sap.com/javadocs/mdm/sp06/com/sap/mdm/data/KeyMapping.html
It may help
Rgds
Deep -
How to Maintain Surrogate Key Mapping (cross-reference) for Dimension Tables
Hi,
What would be the best approach on ODI to implement the Surrogate Key Mapping Table on the STG layer according to Kimball's technique:
"Surrogate key mapping tables are designed to map natural keys from the disparate source systems to their master data warehouse surrogate key. Mapping tables are an efficient way to maintain surrogate keys in your data warehouse. These compact tables are designed for high-speed processing. Mapping tables contain only the most current value of a surrogate key— used to populate a dimension—and the natural key from the source system. Since the same dimension can have many sources, a mapping table contains a natural key column for each of its sources.
Mapping tables can be equally effective if they are stored in a database or on the file system. The advantage of using a database for mapping tables is that you can utilize the database sequence generator to create new surrogate keys. And also, when indexed properly, mapping tables in a database are very efficient during key value lookups."
We have a requirement to implement cross-reference mapping tables with Natural and Surrogate Keys for each dimension table. These mappings tables will be populated automatically (only inserts) during the E-LT execution, right after inserting into the dimension table.
Someone have any idea on how to implement this on ODI?
Thanks,
DaniloHi,
first of all please avoid bolding something. After this according Kimball (if i remember well) is a 1:1 mapping, so no-surrogate key.
After that personally you could use Lookup Table
http://www.odigurus.com/2012/02/lookup-transformation-using-odi.html
or make a simple outer join filtering by your "Active_Flag" column (remember that this filter need to be inside your outer join).
Let us know
Francesco -
Key Mapping in Syndication Port
Hi,
Scenario -- Syndication through mdm outbound port (automatic mode) :
What will happen after XI successfully created data in R3 ? How MDM will get key mapping?
Do you need to execute import manager externaly to update key mappings or it will automatically take care?
Regards,
RamThere are several options here :
1) If the Client system allows external numbering, the key can be generated on MDM, and would be transferred in the XML-File and once a new record is created in the Client system, it would takeover this key. When you look in the Console in the Remote system section, there's a field "Key-Generation", which cen be used for this.
2) Internal numbering on the CLient system. When the client system creates a key, this needs to be transferred back to MDM. This can be done e.g via calling a web-service "MDMAddRemoteKey".
Regards Klaus -
Presently we are using forms 4.5. We have got costomise key
mapping for operating through forms. Now we want to start forms
on web (Intranet). Earlier we use to change key mapping through
oracle*terminal. I require help in knowing how to customise key
mapping in forms 6i / oracle 8.1.7.Hi,
Boy, I have some good news to you: Oracle*Terminal is no longer
needed.
WordPad (or your favorite text editor) is your tool from now on.
Keyboard files are located in $ORACLE_HOME\FORMS60.
Simply ignore the binary file fmrusw.res when you run Forms on
the Web. FMRWEB.RES is the one that is used, and it's pure ASCII.
There are some comments in the file itself.
The keys are the same as the Motif version of Forms.
If you prefer the Windows keys, simply use FMRPCWEB.RES instead.
How? Check under $ORACLE_HOME\FORMS60\SERVER for your
formsweb.cfg, go to User Parameters and replace the
otherparams=
line with
otherparams=term=%forms60%\fmrpcweb.res
Now, anyone can define the Function-0 till Function-9 key
combinations, in order to use KEY-F0 till KEY-F9 triggers.
Hope this helps,
Pedro das Neves
[email protected] -
Hi
Is there any simple key mapping sample?
I would like to create a protoype loading (manually) a materials base from different sources (companies) and later try to create key mapping, in order to understand how this key mapping works.
Regards,
Ronaldo.Hi Roman
Thanks for your answer.
As I am beginner in MDM, I am not even sure if key mapping is what I need.
What I want to do is:
- Simulate a group with 3 companies. In this group each company has its own materials database. So, let's suppose a certain material has a different code in each company.
- In company A, this material is called A1.
- In company B, this material is called B1.
- And in company C, C1.
After these material bases have been loaded in MDM, someone would analyze these products, and based on there coincident physical characteristics conclude: OK, all are the same material. All these materials would receive a UNIQUE identification, which could be used to generate cross-company reports, allowing these "different" products be grouped together (or compared).
This UNIQUE Identification should be something like below:
Product Company Unique Code
A1 A X001
B1 B X001
C1 C X001
Is that the objective of Key mapping?
If so, I am having some problems to make it works:
- There is a agency field in Key Mapping. What it means? Would it be the same as "company" in example above? If so, why there is no Agency field in records that I insert manually...I feel I am missing some important concept here.
- When I insert a key mapping for my second product, the key mapping for the first one is delete. Why?
Definitively I know that my questions are very basic (and boring, probably). If there is a tutorial for newbies, I would appreciate.
Regards,
Ronaldo. -
Key Mapping with Oracle Reports
I am currently trying to run report requests using the Oracle Report Server however the problem that I have is that we need to send database username/password information over the network. From a security perspective this is not acceptable.
One way we were going to get around this is to "wrap" the Oracle Report servlet with another servlet, so the client browser sends the wrapper servlet information such as report location and report name, and the
wrapper servlet adds in additional information such as the username and
password, eliminating the need for the client application to know this information.
The problem is that the URL returned to the client when the report is generated contains the username/password, which again is not
acceptable. As I have seen mention that Oracle Reports can be run over the Internet,
I assume that there is a mechanism for hiding this information. Do you know how to achieve this?.
I am keen to just hard code the user name, password, and database connection into a key mapping file to resolve this security issue. However we are having trouble getting this method to work with the Oracle Report Servlet. We are using WebLogic Server to serve these servlets.Hello,
Here is an extract from Reports documentation:
Oracle9iAS Reports Services Publishing Reports to the Web
Release 2 (9.0.2)
Part Number A92102-01
3.3.2 Reloading the Key Map File
Use the RELOAD_KEYMAP parameter to specify whether the key map file
(cgicmd.dat) should be reloaded each time the servlet receives a request.
For example:
RELOAD_KEYMAP=yes
This is useful if you frequently make changes to the map file and want the
process of loading your changes to be automatic. Runtime performance will be
affected according to how long it takes to reload the file.
Typically, this parameter is set to no in a production environment and yes in
a testing environment.
Regards -
Import Manager 'Error 5611520 - Error Saving Key Mapping'
I am using CREDITOR_EXTRACT in R/3 to send Vendor IDoc to XI and use CREMDM04 type. XI generates an XML file that I load into MDM using a client that is set up for Inbound/Outbound. The key mappings have been turned on for the Vendor repository.
In IM, I use the standard map CREMDM04 and the system maps the incoming XML file to the vendor main table. There are few values that I have to map manually - fine. Next, when I click Import, I get a error pop-up message 'Error Saving Key Mapping - Errno 5611520'.
Has anybody experienced this when using all standard content (schemas and maps) for Vendor?
Thanks in advance.Subbu,
Found another system that has the same versions as you do. This particular error did not appear, but we got some internal IM error. Also, the SAP training demos are on the same versions as mine.
I am using MDC R/3 as the client and the CREMDM04 schema map. Not using MDM inbound ports for now. Just loading XML file generated by XI based on CREMDM04. Do you think that I need to define a Qualified Range for this client in the Console or can it be left blank?
Thanks. -
Key Mapping Conflict of GT780DX
My GT780DX is unable to support 10 keys pressed together, while it is said
"MSI’s gaming keyboard supports simultaneous pressing of 10 keys or more, allowing users to issue commands rapidly and respond to games with precision."
Two examples:
Key I invalid when Key S,D are pressed together;
Key D invalid when Key U,I are pressed together.
I am wondering if my nb is lack of some drivers,
though I have downloaded the most drivers from official site http://www.msi.com/product/nb/GT780DX-GT780DXR-.htmlHi,
my question is ... should I use this key mapping feature from all look up tables, main table while importing from remote systems?
should all my feilds have REMOTE KEY enabled.
1. It is totally dpeend upon business requirement which table you want to make remote enable.
The main reason to use remote key is to syndiacte the data to remote system specific.
So if you are syndication your subtables to then it is good to make remote key enable.
2. Only tables are remote key enabled not the fields.
Lets say I have loaded data into my repository from 3 different remote systems(R1,R2,R3) using remote key feature.
Now, I want to see all the records that belong to R1 only or R2 only?
Can this be seen using remote mapping feature? or how can I see only specific records for one remote system.... should i create another field that identifies the source and just map it? ....... generally how do we handle this?
This is not possible as standard way.
But workaround is when you map the source field to remote key at destination side in import manager,just make the clone of source field and map it to the new fields to store the system from where the records came.
So in data manager you can search on this field to see only records that is specific to some remote system.
Also, have uploaded the data for my lookup table DIVISIONS,when i try syndicating it for remote R1......
in my destination preview i can see some records that belong to only R2 and R3 also. I mean I am not able to see only the
records belong to R1 system.
I mapped
division <-> div
desc <-> desc
there are two more keys like remote key, v...... Should I also map these keys?
Yes you have to map these fields as well.
Even after mapping this option if you want to syndicate all the remote system records then there is option "override remote keys".after enabling this option there is record generated for each remote system.
hope it helps you.
Thanks,
Sudhanshu -
SAP MDM 7.1 Vendor Number and key mapping
We are importing data for vendors whcih DO NOT have any VendorNumber now. (they have some the VendorNumber but not one which can be used in the field Vendor Number.)
We have to generate the VendorNumber during oar - better - after the import.
There is not problem creating is after the import with a simple assigmment statemen which contains some rules.
So far so good.
The pitfall in creating the number AFTER the import is that NO remote keys are generated.
Any idea how to create these keys AFTER or DURING import IF hte venoder number is assigned during or after import?Hi Lutz-Peter,
Any idea how to create these keys AFTER or DURING import IF the venoder number is assigned during or after import?
During Import, if you have local keys for each of these remote system, you can maintain it using Remote key concept.
But you must have one Matching field(Global ID) for this. Since you are creating Vendor key centrally in MDM using MDM Data Manager. Are you exporting data to different remote systems after creating Vendor number centrally in MDM(which can acts as Global ID) If yes then after data created into Remote systems, you can bring Local ID of remote system with this Global ID during import. 1stly, for this your main table property Key Mapping = yes should be enabled in MDM console.
So during import you should open MDM Import Manager by selecting required Remote system, you will get one more field in target Remote Key, map this target field with with source Local ID field along with other fields like Global ID etc. So in this you will have your Remote Key for Remote systems.
However Remote Keys depends on how are you creating Local ID(remote Keys) for remote systems, i mean in Remote systems itself or through MDM Syndicator using Remote system Key Generation concept.
Regards,
Mandeep Saini -
N-m mapping generates blobs in ref-table
Why generates the schematool blobs in the reference-table of a n-m mapping?
I want to map an existing schema and this isn't possible with blobs. I
expected a table with the primary-keys of each class.Abe White wrote:
Why generates the schematool blobs in the reference-table of a n-m mapping?
I want to map an existing schema and this isn't possible with blobs. I
expected a table with the primary-keys of each class.
Kodo fully supports n-m and m-m mappings. If you post your .jdo files and
describe your schema somehow we can probably help you find out where the
problem lies.Hello,
here I send you a short and useless example which contains
my two problems:
- n-m mapping generates blobs in ref-table
- multi-table inheritance mapping
This are my classes:
Class Person
String firstname
String lastname
Class Employee extends Person
long personalNumber
Collection memberOf ( TYPE Project )
Class Project
String projectname
Collection members ( TYPE Employee )
The jdo-metadata:
<?xml version="1.0"?>
<jdo>
<package name="test">
<class name="Person" identity-type="application"
objectid-class="PersonPK">
<extension vendor-name="kodo" key="table" value="DB_PERSON" />
<extension vendor-name="kodo" key="lock-column" value="VERSION_ID" />
<extension vendor-name="kodo" key="class-column" value="none" />
<field name="firstname" null-value="exception" primary-key="true">
<extension vendor-name="kodo" key="data-column"
value="FIRSTNAME_TXT" />
<extension vendor-name="kodo" key="column-length" value="50"/>
</field>
<field name="lastname" null-value="exception" primary-key="true">
<extension vendor-name="kodo" key="data-column"
value="LASTNAME_TXT" />
<extension vendor-name="kodo" key="column-length" value="50"/>
</field>
</class>
<!-- I tried both -->
<!-- <class name="Employee"
persistence-capable-superclass="test.Person"> -->
<class name="Employee" identity-type="application"
objectid-class="PersonPK" persistence-capable-superclass="test.Person">
<extension vendor-name="kodo" key="table" value="DB_EMPLOYEE" />
<extension vendor-name="kodo" key="lock-column" value="VERSION_ID" />
<extension vendor-name="kodo" key="class-column" value="none" />
<field name="personalNumber" null-value="exception">
<extension vendor-name="kodo" key="data-column"
value="PERSONAL_NUM" />
</field>
<field name="memberOf" null-value="none">
<extension vendor-name="kodo" key="inverse" value="members" />
<extension vendor-name="kodo" key="table"
value="DB_EMPLOYEE_PROJECT_REF" />
<extension vendor-name="kodo" key="projectname-data-column"
value="PROJECT_NAME" />
<extension vendor-name="kodo" key="firstname-ref-column"
value="EMPLOYEE_FIRSTNAME" />
<extension vendor-name="kodo" key="lastname-ref-column"
value="EMPLOYEE_LASTNAME" />
</field>
</class>
<class name="Project" identity-type="application"
objectid-class="ProjectPK">
<extension vendor-name="kodo" key="table" value="DB_PROJECT" />
<extension vendor-name="kodo" key="lock-column" value="VERSION_ID" />
<extension vendor-name="kodo" key="class-column" value="none" />
<field name="projectname" null-value="exception" primary-key="true">
<extension vendor-name="kodo" key="data-column" value="NAME_TXT" />
<extension vendor-name="kodo" key="column-length" value="50"/>
</field>
<field name="members" null-value="none">
<extension vendor-name="kodo" key="inverse" value="memberOf" />
<extension vendor-name="kodo" key="table"
value="DB_EMPLOYEE_PROJECT_REF" />
<extension vendor-name="kodo" key="firstname-data-column"
value="EMPLOYEE_FIRSTNAME" />
<extension vendor-name="kodo" key="lastname-data-column"
value="EMPLOYEE_LASTNAME" />
<extension vendor-name="kodo" key="projectname-ref-column"
value="PROJECT_NAME" />
</field>
</class>
</package>
</jdo>
Kodo generates this db-schema:
Table db_person
Column VERSION_ID ( Type int(11) )
Column FIRSTNAME_TXT ( Type varchar(50) ) <PrimaryKey>
Column LASTNAME_TXT ( Type varchar(50) ) <PrimaryKey>
Table db_employee
Column PERSONAL_NUM ( Type bigint(20) )
Table db_project
Column VERSION_ID ( Type int(11) )
Column NAME_TXT ( Type varchar(50) ) <PrimaryKey>
Table db_employee_project_ref
Column MEMBERSX ( Type blob )
Column MEMBEROFX ( Type blob )
I expected this:
Table db_person
Column VERSION_ID ( Type int(11) )
Column FIRSTNAME_TXT ( Type varchar(50) ) <PrimaryKey>
Column LASTNAME_TXT ( Type varchar(50) ) <PrimaryKey>
Table db_employee
Column PERSONAL_NUM ( Type bigint(20) )
**** I think Kodo needs this reference to the base-class ****
Column FIRSTNAME_TXT ( Type varchar(50) ) <ForeignKey>
Column LASTNAME_TXT ( Type varchar(50) ) <ForeignKey>
Table db_project
Column VERSION_ID ( Type int(11) )
Column NAME_TXT ( Type varchar(50) ) <PrimaryKey>
Table db_employee_project_ref
**** the mapping should use the primary keys, no blobs ****
Column EMPLOYEE_FIRSTNAME ( Type varchar(50) ) <ForeignKey>
Column EMPLOYEE_LASTNAME ( Type varchar(50) ) <ForeignKey>
Column PROJECT_NAME ( Type varchar(50) ) <ForeignKey>
Maybe you are looking for
-
All day events on iCloud not syncing to mac
all day events and birthday events appear in ical on iCloud but are not syncing to mac
-
SQLE_COMMUNICATIONS_ERROR while running SFA application from Visual Studio
Hi, I am trying the SFA (Sales Force Automation) example. I am using the Windows Mobile 6.0 emulator from Visual Studio to run the application. When I go to the "Configure" button, change the configuration values and try to Save, I am getting the fol
-
A dock won't work, I'm not sure if it's charging while it's off.
-
Right button woes with mighty mouse
I have found that the right button on my mighty mouse quite frankly isnt very good. The mouse only detects i have clicked the right button when my left finger is completely lifted off the left mouse button, if it is merely resting on the left hand bu
-
Store presets in catalog.
I like to store presets with the catalog. But then the only presets available to all catalogs are the ones Adobe has provided. Is there a way to create a "global" preset that will be available in all catalogs when one selects store presets in cata