cancel
Showing results for 
Search instead for 
Did you mean: 

Import Skip, Can we notify!!!

former_member283645
Participant
0 Kudos

Hi,

Material Number is a Key field in matching records in Import map.

It is Set to Skip (For New materials in Incoming file)

and Update all Mapped Fields (For existing materials in MDM & Incoming file)

Now, My incoming file has some Materials which are currently not existing in MDM.

So, this import map skips that records to be imported.

How will i know that a Particular record in a file is Not imported??

in MDM server Log folder there is a File called 'Import@...'

This log says 1 record ''skiped'' and 20 records are ''Update all mapped fields''.

But is not giving any key information like this particular record or this particular material is Skipped!!!

Firstly is it possible to find it in MDM, or is there any workaround to find.

Please Help..

Kind Regards

Eva

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi,

Alternate solution:

Create a new port and a new table in MDM. Then create a new import map with Create New.

Replicate the incoming file and push it to the Ready folder. Use the time stamp of the incoming file/import log and newly created records to find the newly created materials for any given day.

Thanks,

Shambhu.

Former Member
0 Kudos

Hey Shambhu,

Will that tell which records are skipped?

Can you detail the process flow.

Thanks,

Ravi

Former Member
0 Kudos

Yes, It will create the new records in the new table. So you can go in Data Manager and find the new records.

Create the table with some important fields like primary key and few important fields.

Thanks.

Former Member
0 Kudos

Hi Shambhu,

Good idea but i guess it will demand for creation of new record in MDM.That is where it wont suffice,it will have to be stored somewhere else.

Otherwise the flow should go like PI will have to send 2 files to each of these ports simultaneously.

On one hand you will know which are being updated by 1st.

On other you will know which are being updated by 2nd.

But one has to take care that fields updated have to be different as you mentioned.

I see a challenge here MDM does not give you a functionality to search updated records based on fields.

So for that we will have to create fields which track updation for 1st scenario and 2nd scenario separately.

Catch is it has to be run daily.Once this is set up a java code can give you daily report too.

what do you say.

Thanks,

Ravi

Former Member
0 Kudos

Yes, thats why I suggested to create a new Main table"A" with a field referenced to the Material master main table primary key in the MDM Repository.

So only the new records gets created in table A. Then you can use the Data Manager to view the new records and prepare your report or complete your analysis.

You can use syndication map to generate report instead of additional java code for reporting. All records getting created in table A are the records that were present in the incoming file but skipped in the Material Master Main table for any particular given date.

I think this will work with not much performance impact on the repository, if the fields and number of records are manageable.

Thanks.

Former Member
0 Kudos

Hi Shambhu,

Yes I think this should workout but only concern is its a big development

Hey Eva,

Please let us know what do you think of this.

Thanks,

Ravi

Former Member
0 Kudos

I think this is very easy development and a quick way to fulfill Eva's requirement.

Eva, mail me or call me if required.

Thanks,

Shambhu.

Former Member
0 Kudos

I agree PI config,MDM dev and port and map creation as against ini parameter change that was the point i was refering to.

Thanks Shambhu.

Ravi

former_member283645
Participant
0 Kudos

Hi Shambhu , Ravi,

Sorry was on leave for Couple of days.

Thats more than a help you guys have done..

2 import maps, One Skips and second one creates.

Created ones will be pointed to Dummy 2nd main table.

Skipped ones will update the records in main table.

That sounds like a plan.

Does this mean that Skip Unchanged Records=True will never give the Skipped records in the import log!!!

I tried in sandbox, there is no difference in the Import log, I requested Basis To do it in Dev!!

Kind Regards

Eva

Former Member
0 Kudos

Hey Eva,

Thanks to Shambhu for coming up with this idea.

There should be a entries in Import logs.Exactly where are you looking for entries?

Thanks,

Ravi

former_member283645
Participant
0 Kudos

Hi,

The Skip Unchanged Records=True in MDS.ini file.

I have an Import map..

Material Number is the key in matching Tab.

The import map settings are...

>Skip the records which has New material numbers

>Update all mapped Fields for the Existing material Numbers.

I have dropped a File with New Material Number (Which is not existing in MDM).

The Import server Skipped that Record.

In the File Server .. /mdm/distributions/Dww_ORCL/MAT/Inbound/MAINFRAME/MF_TO_MDM_DATA_PORT/Log

Folder i can see a Import log which says...

****************************************************

<?xml version="1.0" encoding="utf-8"?>

<?xml-stylesheet type="text/xsl" href="MDM_Log.xsl"?>

<MDM_Log version="1.0" path="/usr/sap/DMD/MDIS01/_20110831174532.xml"

>

<Open ts-long="17:45:32 GMT, Wednesday, August 31, 2011" ts="2011/08/31 17:45:32.355 GMT" pid="32653" host="dsgmdcsd101" compile-type="">

<Version ts="2011/08/31 17:45:32.355 GMT" tid="1163262272" entry-no="0"><Server>7.1.07.239</Server><Build>Built on 2011-Jul-30</Build></Version>

<Trace ts="2011/08/31 17:45:32.363 GMT" tid="1163262272" entry-no="1">[MDS=dsgmdcsd101 Repository=xxx ClientSystem=MAINFRAME Port=MF_TO_MDM__DATA_PORT]: Chunk size/parallel[2000/40]: Import Task Started.</Trace>

<Timer ts="2011/08/31 17:45:32.386 GMT" tid="1163262272" entry-no="2" name="GetInitializationInfoAllLanguages" total="0.022449"/>

<Timer ts="2011/08/31 17:45:32.404 GMT" tid="1163262272" entry-no="3" name="Add User Dimensions" total="0.000005"/>

<Timer ts="2011/08/31 17:45:32.410 GMT" tid="1163262272" entry-no="4" name="Regular Table Load" total="0.005497"/>

<Timer ts="2011/08/31 17:45:32.411 GMT" tid="1163262272" entry-no="5" name="data Table Load " total="0.000262"/>

<Timer ts="2011/08/31 17:45:32.412 GMT" tid="1163262272" entry-no="6" name="relationship Table Load " total="0.000008"/>

<Timer ts="2011/08/31 17:45:32.412 GMT" tid="1163262272" entry-no="7" name="tuple Load " total="0.000017"/>

<Timer ts="2011/08/31 17:45:32.414 GMT" tid="1163262272" entry-no="8" name="Caching Repository info [xxxx]" total="0.050699"/>

<Trace ts="2011/08/31 17:45:32.415 GMT" tid="1163262272" entry-no="9">1 Source file(s) retrieval + Repository Caching: 0.061603 milli-seconds.<LF/>-- INPUT_FILE_MF_TO_MDM.xml</Trace>

<Trace ts="2011/08/31 17:45:32.416 GMT" tid="1173752128" entry-no="10">xStructuralTransformer: Thread started.</Trace>

<Trace ts="2011/08/31 17:45:32.416 GMT" tid="1184241984" entry-no="11">xValueTransformer: Thread started.</Trace>

<Trace ts="2011/08/31 17:45:32.419 GMT" tid="1194731840" entry-no="12">xImporter: Thread started.</Trace>

<Trace ts="2011/08/31 17:45:32.452 GMT" tid="1205221696" entry-no="13">xXmlSaxParser: Thread started.</Trace>

<Timer ts="2011/08/31 17:45:32.453 GMT" tid="1205221696" entry-no="14" name="Chunk parse and population" total="0.000000">1</Timer>

<Trace ts="2011/08/31 17:45:32.453 GMT" tid="1205221696" entry-no="15">Parsed and populated Chunk No: 1 w/ 1 segments.</Trace>

<Trace ts="2011/08/31 17:45:32.466 GMT" tid="1205221696" entry-no="16">xXmlSaxParser: Thread finished; Start -&gt; End: 0.000000000 milli-seconds.</Trace>

<Timer ts="2011/08/31 17:45:32.475 GMT" tid="1173752128" entry-no="17" name="Structural Transformation" total="0.000000">1</Timer>

<Trace ts="2011/08/31 17:45:32.476 GMT" tid="1173752128" entry-no="18">Structural Transformation completed for Chunk No: 1 w/ 1 segments.</Trace>

<Timer ts="2011/08/31 17:45:32.507 GMT" tid="1184241984" entry-no="19" name="Value Transformation PopulateValue stage 1" total="0.000000">1</Timer>

<Timer ts="2011/08/31 17:45:32.507 GMT" tid="1184241984" entry-no="20" name="Value Transformation LoadCompoundFieldTransformation" total="0.000000">1</Timer>

<Timer ts="2011/08/31 17:45:32.507 GMT" tid="1184241984" entry-no="21" name="Value Transformation PopulateFieldWithMap" total="0.000000">1</Timer>

<Timer ts="2011/08/31 17:45:32.508 GMT" tid="1184241984" entry-no="22" name="Value Transformation PopulateValue stage 2" total="0.000000">1</Timer>

<Timer ts="2011/08/31 17:45:32.516 GMT" tid="1184241984" entry-no="23" name="Value Transformation" total="0.000000">1</Timer>

<Trace ts="2011/08/31 17:45:32.516 GMT" tid="1184241984" entry-no="24">Value Transformation completed for Chunk No: 1 w/ 1 segments.</Trace>

<Timer ts="2011/08/31 17:45:32.550 GMT" tid="1194731840" entry-no="25" name="Get Lookup Field And Foreign Key Info" total="0.000000">1</Timer>

<Timer ts="2011/08/31 17:45:32.550 GMT" tid="1194731840" entry-no="26" name="Record Matching - Get Unique Fields" total="0.000000">1</Timer>

<Timer ts="2011/08/31 17:45:32.551 GMT" tid="1194731840" entry-no="27" name="Record Matching - Set Match Record Data" total="0.000000">1</Timer>

<Timer ts="2011/08/31 17:45:32.552 GMT" tid="1194731840" entry-no="28" name="Record Matching - Init Match Record" total="0.000000">1</Timer>

<Timer ts="2011/08/31 17:45:32.553 GMT" tid="1194731840" entry-no="29" name="Record Matching - GetSourceRecords" total="0.000000">1</Timer>

<Timer ts="2011/08/31 17:45:32.555 GMT" tid="1194731840" entry-no="30" name="Record Matching - GetMatchValues" total="0.000000">1</Timer>

<Timer ts="2011/08/31 17:45:32.557 GMT" tid="1194731840" entry-no="31" name="Record Matching - [*** Time spent on MDS ***]" total="0.001520">1</Timer>

<Timer ts="2011/08/31 17:45:32.560 GMT" tid="1194731840" entry-no="32" name="Record Matching - Match Record [Total]" total="0.000000"/>

<Trace ts="2011/08/31 17:45:32.561 GMT" tid="1194731840" entry-no="33">Importing: &apos;INPUT_FILE_MF_TO_MDM.xml.MDM__DATA&apos; Table --&gt; &apos;xxx.xxx&apos; Table.</Trace>

<Timer ts="2011/08/31 17:45:32.565 GMT" tid="1194731840" entry-no="34" name="Import Records - Stage 1 - Prepare Import Records" total="0.000000">1</Timer>

<Timer ts="2011/08/31 17:45:32.566 GMT" tid="1194731840" entry-no="35" name="Import Records - Stage 2 - Filter/Merge" total="0.000000">1</Timer>

<Trace ts="2011/08/31 17:45:32.566 GMT" tid="1194731840" entry-no="36">Import action:<LF/>Skip: 0<LF/>Create: 0<LF/>Updated (NULL fields only): 0<LF/>Updated (all mapped fields): 0<LF/>Replace: 0<LF/>Delete [destination]: 0<LF/>Value Exceptions: 0<LF/>Import Exceptions: 0</Trace>

<Timer ts="2011/08/31 17:45:32.566 GMT" tid="1194731840" entry-no="37" name="Total chunk import time -" total="0.000000">1</Timer>

<Trace ts="2011/08/31 17:45:32.567 GMT" tid="1194731840" entry-no="38">xImporter: Total chunk import time: 0.000000000 milli-seconds.</Trace>

<Trace ts="2011/08/31 17:45:32.567 GMT" tid="1194731840" entry-no="39">1 Segments were Successfully imported.</Trace>

<Trace ts="2011/08/31 17:45:32.581 GMT" tid="1173752128" entry-no="40">xStructuralTransformer: : Start -&gt; End: 0.000000000 milli-seconds.</Trace>

<Trace ts="2011/08/31 17:45:32.581 GMT" tid="1173752128" entry-no="41">xStructuralTransformer: Thread signalled to stop: RC = 0x0</Trace>

<Trace ts="2011/08/31 17:45:33.455 GMT" tid="1184241984" entry-no="42">xValueTransformer: : Start -&gt; End: 0.000000000 milli-seconds.</Trace>

<Trace ts="2011/08/31 17:45:34.458 GMT" tid="1194731840" entry-no="43">xImporter: : Start -&gt; End: 0.000000000 milli-seconds.</Trace>

<Trace ts="2011/08/31 17:45:34.478 GMT" tid="1163262272" entry-no="44">[MDS=dsgmdcsd101 Repository=xxx ClientSystem=MAINFRAME Port=MF_TO_MDM__DATA_PORT]: Chunk size/parallel[2000/40]: Import Task Finished.</Trace>

</Open>

</MDM_Log>

******************************************************

This log did not give me the Skipped Record Info.

However it said me that '<Trace ts="2011/08/31 17:45:32.567 GMT" tid="1194731840" entry-no="39">1 Segments were Successfully imported.</Trace> '

Which is very strange...???

Do you know any other Log which says about Record details...!!!

Kind Regards

Eva

Former Member
0 Kudos

Eva,

Not sure if any logs will show the missing material number. Even if it does, In real time scenario you cannot monitor the log files to find missing material numbers and then send out a report.

The alternate solution proposed by me will help you to automate this reporting.

Thanks,

Shambhu.

Former Member
0 Kudos

Hi Eva,

I understand this is not most user friendly format,but please check the directory which has been provided in MDIS.ini.

If that does not work,lets go ahead creating another main table as Shambhu mentioned.

Same source files for both the ports and teh Dummy table has Create for New and Update Mapped for the others so that the records can appear when searching for Created/Updated records.

Thanks,

Ravi

former_member283645
Participant
0 Kudos

Hi,

I have seen a Log in Repository. Does not help.

However i have a question on the Workaround solution.

My Main table_1 has all the Material related data init.

Import map 1 -> When i load a File and if file has new material Number in it the setting is to Skip all New Materials and 'Update All Mapped' for existing materials. This is Mapped to My Main table1.

Now i have this Main table_2 (which is created for the sake of Work around).

This table will be Blank.. Now my question is, When i create a Import map, when i map to a Dummy Materail Number field , How will the Import map Know that whether the Incoming material Number is available in the main table 1 ??

But our target in the map is main table 1 !!!

Can you please help!!

Kind Regards

Eva

Former Member
0 Kudos

My Main table_1 has all the Material related data init.

Import map 1 -> When i load a File and if file has new material Number in it the setting is to Skip all New Materials and 'Update All Mapped' for existing materials. This is Mapped to My Main table1.

Now i have this Main table_2 (which is created for the sake of Work around).

This table will be Blank.. Now my question is, When i create a Import map, when i map to a Dummy Materail Number field , How will the Import map Know that whether the Incoming material Number is available in the main table 1 ??

But our target in the map is main table 1 !!!

Well starting condition for table 2 can be either same records for table1 and table 2 or table 2 empty.

Scenarios 1 - Table 1 and Table 2 having same data for Material no to start with.

lets say 20 records come for import of which 10 records are those already created in table 1,they are updated and 10 are new ,they are skipped.

For Table 2 these,10 new records will be created and 10 old will be updated.

You can create a additional field in table 2 Description,it will also be overwriiten in case of update.

Now you can search records coming in from table 2,it can tell you which records came for import to Table 1.They are the same which are created/updated today in Table 2 ,Export them out.

Table 1 gives you which records were updated today,Export them out.

Skipped records = Total record available for import (Exported from table 2) - Total record Updated (From table 1)

Scenario 2 - Table 2 is Empty.

Here every record coming in will be created.But after a certain duration of time record updation will also start.

So records Created/updated with todays date will form the search criteria and will tell you Total records that were available for import.And hence you can export this data out.

This data can also be syndicated based on Supress unchanged record criteria used in a WF which can has Threshold of 1 day.

Hope this helps.

Thanks,

Ravi

Former Member
0 Kudos

My Main table_1 has all the Material related data init.

Import map 1 -> When i load a File and if file has new material Number in it the setting is to Skip all New Materials and 'Update All Mapped' for existing materials. This is Mapped to My Main table1.

Now i have this Main table_2 (which is created for the sake of Work around).

This table will be Blank.. Now my question is, When i create a Import map, when i map to a Dummy Materail Number field , How will the Import map Know that whether the Incoming material Number is available in the main table 1 ??

But our target in the map is main table 1 !!!

Well starting condition for table 2 can be either same records for table1 and table 2 or table 2 empty.

Scenarios 1 - Table 1 and Table 2 having same data for Material no to start with.

lets say 20 records come for import of which 10 records are those already created in table 1,they are updated and 10 are new ,they are skipped.

For Table 2 these,10 new records will be created and 10 old will be updated.

You can create a additional field in table 2 Description,it will also be overwriiten in case of update.

Now you can search records coming in from table 2,it can tell you which records came for import to Table 1.They are the same which are created/updated today in Table 2 ,Export them out.

Table 1 gives you which records were updated today,Export them out.

Skipped records = Total record available for import (Exported from table 2) - Total record Updated (From table 1)

Scenario 2 - Table 2 is Empty.

Here every record coming in will be created.But after a certain duration of time record updation will also start.

So records Created/updated with todays date will form the search criteria and will tell you Total records that were available for import.And hence you can export this data out.

This data can also be syndicated based on Supress unchanged record criteria used in a WF which can has Threshold of 1 day.

Hope this helps.

Thanks,

Ravi

Former Member
0 Kudos

Hi Eva,

You have to create a field of type Main table lookup. This field will hold the material number in your new dummy table. Use this field in matching record in import map. In this way, you can identify new records and import in dummy table.

For details- read Multple Main table concept and how to refer main tables from other main tables.

Thanks,

Shambhu.

former_member283645
Participant
0 Kudos

Hi Verma,

i am a bit confused which your thought!!!

Can you please let me know what fields should be there in Dummy Main table.

and How do we design the Import map for this...

Kind Regards

Eva

Former Member
0 Kudos

This message was moderated.

Former Member
0 Kudos

This message was moderated.

former_member283645
Participant
0 Kudos

Hi Verma,

i am a bit confused which your thought!!!

Can you please let me know what fields should be there in Dummy Main table.

and How do we design the Import map for this...

Could someone who understood this logic Please help me in understanding this!!!!

Please Help..

Kind Regards

Eva

Former Member
0 Kudos

Hi Eva,

Please update the thread if the problem still persists.

Thanks,

Ravi

former_member283645
Participant
0 Kudos

Hi,

The update is ..

'

Hi Verma,

i am a bit confused which your thought!!!

Can you please let me know what fields should be there in Dummy Main table.

and How do we design the Import map for this...

Could someone who understood this logic Please help me in understanding this!!!!

Please Help..

Kind Regards

Eva

'

Please help..

Kind Regards

Eva

Former Member
0 Kudos

Hi Eva,

Let me outline the steps:

1.PI sends 2 files to both the ports.

2.Main table A imports and only updates,Main table B has exact same data but it creates and updates.

3.Main table B can have number and few other fields.Import map should have import action as "Update all mapped".

4.From data manager from table A,export excel with update date as today.These are updated records.

5.From data manager from table B,export excel with update date/create day as today,these are updated and skipped records.

Records from step 5 - Records from step 4 = Skipped records.

Thanks,

Ravi

Former Member
0 Kudos

Dear Eva,

Import Skip, Can we notify..?

Requirement: We donu2019t want to create new materials if there is material number in incoming file which is not available in MDM currently.

Approach 1: One can notify through PI Alerts for those Material Number which is not available in MDM.

One can follow the same approach as discussed in below blog: Here, in this blog one can give conditional output depending on existence of field value (Can be Material Number) in MDM.

LookUp in to the MDM From SAP PI by Raj Sharma, /people/raj.sharma5/blog/2009/03/09/lookup-in-to-the-mdm-from-sap-pi

Approach 2: MDM Workflow: (No need to change in Data Model like dummy main table etc)

Start (Checkout Record) >Branch (based on validation: IS_NULL (Material Number)) <> Validation Result 1; IF validation pass that means Material Number is Null (i.e. new Material Number which need to be skipped as per requirement) should pass to stop1 (Roll back) | Validation Result2 ; IF validation fails that means Material Number is Not Null (i.e. existing Material Number which need to be Updated as per requirement) should pass to Stop2 (Check In)

This workflow should be trigger on Record Import etc as per requirement.

Note: I donu2019t have MDM System and MS Visio available to test it my side but I hope Approach 2 for your case should work. Kindly revert with result.

Regards,

Mandeep Saini

Former Member
0 Kudos

HI Manjeet,

Thanks that was very informative

However,I am not sure if the 2nd scenario would help here as requirement is not to import new material and hence catch those skipped records.I proposed MDIS.ini parameter change but we later found it dpesnt work as mentioned in the help.It only logs that records were skipped thats all.Data model change calls for some development and can be automated too but yes I agree this is a bit of development.

Other possibility can be importing records based on a map and later using another map to create required required records and rollback unwanted.A syndication step and reimport would be done in the course of workflow.

Please let me know your inputs.

Thanks,

Ravi

Former Member
0 Kudos

Hi Ravi,

Its Mandeep here not Manjeet

I strongly belief that Approach 2 should also work, If i could test it i have already confirmed it to Eva, but loggically this above workflow given in my above post should work.

You can edit workflow as per your requirement like you stated "A syndication step and reimport would be done in the course of workflow." but here in this scenario i think it can be skipped thts why i suggested very simple and easy to use workflow.

Let me elaborate a lit more abt workflow; as you know we can trigger workflow on Record Import using MDM Import Manager. Source file would have both records (already created Material Number as well as new Material Number which does not exist in MDM), you know in default import action of Import Manager for exisitng records by default action should be Update(All records mapped) and for new records by default it should be create rather than skip. So afterwards when these records becomes part of workflow, for update(All mapped records) during workflow we could able to get field Material Number valdation whcih is not null so can be updated as stop(check In) thus gets commit(updated into MDM) but for new records, i feel Material number should come Null thus does not allow to create by using option stop(roll back). Other than this roll back if you want to know what are the new records which should be skipped can be traced by introducing Syndicate step before Stop(roll back). It all depends on requirement where syndicate records are all new records which does not exist in MDM for your reference.

Note: Practically, i didnt try above workflow so not quite sure, so let Eva try this workflow and revert with result, I am crossing my fingers and hoping it will work...

Regards,

Mandeep Saini

former_member283645
Participant
0 Kudos

Hi Mandeep and Ravi,

Thanks for the information.

Let me put my understanding here for Approach 2..

My import map will have

New Records -> Create

Existing Records -> Update All Mapped Fields.

Now In Import Manager Config Options, I will place the Work flow to be triggered.

Now the Work flow steps.

1) Start step -> check out

2) Validation-Is_Null(material Number)

3) If Yes then - Stop Step -> Roll back

4) If no then - Stop(2) Step -> Check in

Before i try this I have a doubt, How will this validation Is Null (Material Number) will check whether the Incoming Material number (from File) is available in the Main table Material Field (Type integer) ???

Kind Regards

Eva

Former Member
0 Kudos

Hi Eva,

Please find the below article for complete solution for implementing MDM workflow which allows you to filter and Report Back Unwanted Records (New Records) from Source. You can use Syndicate step as per requirement if you want to keep reference of the unwanted records. Here, In this blog Validation Expression IS_NEW_CHECKOUT is used for identify new created OR updated record.

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/008b23a4-fa2b-2c10-ffbb-8561a9352...

Kindly update the status of the thread OR revert back if still have issues.

Note: I am pretty sure now Approach 2 should also work , Kindly revert with result.

Regards,

Mandeep Saini

former_member283645
Participant
0 Kudos

h

Edited by: Eva majarova on Sep 13, 2011 7:22 PM

former_member283645
Participant
0 Kudos

Hi,

This Document is very Usefull.

I tested as per the attachement and it worked fine.

Instead of syndication step i used a Email notification.

Thanks a lot for Your support.

Kind Regards

Eva

Former Member
0 Kudos

I think the only way to tell which record was skipped is to pull the file into Import Manager and open the map. On the Match Records tab look for the Source Records that have a Match Level of None or a Match Type of None. Those records are the ones that will be skipped during import.

former_member283645
Participant
0 Kudos

Hi,

Sorry for the Delay.

It took sometime for basis to set this Parameter.

I have a Test File which has 1 record init.

It is skipped.

When i see the Import Log..

#################################################

<Open ts-long="13:37:55 GMT, Monday, August 22, 2011" ts="2011/08/22 13:37:55.437 GMT" pid="3532" host="56vm" compile-type="LINUX_X64_RELEASE">

<Version ts="2011/08/22 13:37:55.444 GMT" tid="1165723968" entry-no="0"><Server>7.1.07.239</Server><Build>Built on 2011-Jul-30</Build></Version>

<Trace ts="2011/08/22 13:37:55.477 GMT" tid="1165723968" entry-no="1">[MDS=56m Repository=SITES_SANDBOX_2 ClientSystem=MAINFRAME Port=MF_TO_MDM_SITE_DATA_PORT]: Chunk size/parallel[2000/40]: Import Task Started.</Trace>

<Timer ts="2011/08/22 13:37:55.483 GMT" tid="1165723968" entry-no="2" name="GetInitializationInfoAllLanguages" total="0.006613"/>

<Timer ts="2011/08/22 13:37:55.488 GMT" tid="1165723968" entry-no="3" name="Add User Dimensions" total="0.000001"/>

<Timer ts="2011/08/22 13:37:55.488 GMT" tid="1165723968" entry-no="4" name="Regular Table Load" total="0.000704"/>

<Timer ts="2011/08/22 13:37:55.488 GMT" tid="1165723968" entry-no="5" name="data Table Load " total="0.000027"/>

<Timer ts="2011/08/22 13:37:55.489 GMT" tid="1165723968" entry-no="6" name="relationship Table Load " total="0.000002"/>

<Timer ts="2011/08/22 13:37:55.489 GMT" tid="1165723968" entry-no="7" name="tuple Load " total="0.000003"/>

<Timer ts="2011/08/22 13:37:55.490 GMT" tid="1165723968" entry-no="8" name="Caching Repository info [SITES_SANDBOX_2]" total="0.012988"/>

<Trace ts="2011/08/22 13:37:55.490 GMT" tid="1165723968" entry-no="9">1 Source file(s) retrieval + Repository Caching: 0.053534 milli-seconds.<LF/>-- INPUT_FILE_MF_TO_MDM.xml</Trace>

<Trace ts="2011/08/22 13:37:55.492 GMT" tid="1155234112" entry-no="10">xStructuralTransformer: Thread started.</Trace>

<Trace ts="2011/08/22 13:37:55.500 GMT" tid="1176213824" entry-no="11">xValueTransformer: Thread started.</Trace>

<Trace ts="2011/08/22 13:37:55.500 GMT" tid="1186703680" entry-no="12">xImporter: Thread started.</Trace>

<Trace ts="2011/08/22 13:37:55.500 GMT" tid="1197193536" entry-no="13">xXmlSaxParser: Thread started.</Trace>

<Timer ts="2011/08/22 13:37:55.500 GMT" tid="1197193536" entry-no="14" name="Chunk parse and population" total="0.000000">1</Timer>

<Trace ts="2011/08/22 13:37:55.500 GMT" tid="1197193536" entry-no="15">Parsed and populated Chunk No: 1 w/ 1 segments.</Trace>

<Timer ts="2011/08/22 13:37:55.506 GMT" tid="1155234112" entry-no="16" name="Structural Transformation" total="0.000000">1</Timer>

<Trace ts="2011/08/22 13:37:55.506 GMT" tid="1155234112" entry-no="17">Structural Transformation completed for Chunk No: 1 w/ 1 segments.</Trace>

<Trace ts="2011/08/22 13:37:55.521 GMT" tid="1197193536" entry-no="18">xXmlSaxParser: Thread finished; Start -&gt; End: 0.000000000 milli-seconds.</Trace>

<Timer ts="2011/08/22 13:37:55.526 GMT" tid="1176213824" entry-no="19" name="Value Transformation PopulateValue stage 1" total="0.000000">1</Timer>

<Timer ts="2011/08/22 13:37:55.526 GMT" tid="1176213824" entry-no="20" name="Value Transformation LoadCompoundFieldTransformation" total="0.000000">1</Timer>

<Timer ts="2011/08/22 13:37:55.526 GMT" tid="1176213824" entry-no="21" name="Value Transformation PopulateFieldWithMap" total="0.000000">1</Timer>

<Timer ts="2011/08/22 13:37:55.527 GMT" tid="1176213824" entry-no="22" name="Value Transformation PopulateValue stage 2" total="0.000000">1</Timer>

<Timer ts="2011/08/22 13:37:55.528 GMT" tid="1176213824" entry-no="23" name="Value Transformation" total="0.000000">1</Timer>

<Trace ts="2011/08/22 13:37:55.528 GMT" tid="1176213824" entry-no="24">Value Transformation completed for Chunk No: 1 w/ 1 segments.</Trace>

<Timer ts="2011/08/22 13:37:55.564 GMT" tid="1186703680" entry-no="25" name="Get Lookup Field And Foreign Key Info" total="0.000000">1</Timer>

<Timer ts="2011/08/22 13:37:55.564 GMT" tid="1186703680" entry-no="26" name="Record Matching - Get Unique Fields" total="0.000000">1</Timer>

<Timer ts="2011/08/22 13:37:55.564 GMT" tid="1186703680" entry-no="27" name="Record Matching - Set Match Record Data" total="0.000000">1</Timer>

<Timer ts="2011/08/22 13:37:55.564 GMT" tid="1186703680" entry-no="28" name="Record Matching - Init Match Record" total="0.000000">1</Timer>

<Timer ts="2011/08/22 13:37:55.564 GMT" tid="1186703680" entry-no="29" name="Record Matching - GetSourceRecords" total="0.000000">1</Timer>

<Timer ts="2011/08/22 13:37:55.565 GMT" tid="1186703680" entry-no="30" name="Record Matching - GetMatchValues" total="0.000000">1</Timer>

<Timer ts="2011/08/22 13:37:55.566 GMT" tid="1186703680" entry-no="31" name="Record Matching - [*** Time spent on MDS ***]" total="0.001489">1</Timer>

<Timer ts="2011/08/22 13:37:55.571 GMT" tid="1186703680" entry-no="32" name="Record Matching - Match Record [Total]" total="0.000000"/>

<Trace ts="2011/08/22 13:37:55.571 GMT" tid="1186703680" entry-no="33">Importing: &apos;INPUT_FILE_MF_TO_MDM.xml.S_MDM_SITE_DATA&apos; Table --&gt; &apos;SITES_SANDBOX_2.Sites&apos; Table.</Trace>

<Timer ts="2011/08/22 13:37:55.576 GMT" tid="1186703680" entry-no="34" name="Import Records - Stage 1 - Prepare Import Records" total="0.000000">1</Timer>

<Timer ts="2011/08/22 13:37:55.576 GMT" tid="1186703680" entry-no="35" name="Import Records - Stage 2 - Filter/Merge" total="0.000000">1</Timer>

<Trace ts="2011/08/22 13:37:55.576 GMT" tid="1186703680" entry-no="36">Import action:<LF/>Skip: 0<LF/>Create: 0<LF/>Updated (NULL fields only): 0<LF/>Updated (all mapped fields): 0<LF/>Replace: 0<LF/>Delete [destination]: 0<LF/>Value Exceptions: 0<LF/>Import Exceptions: 0</Trace>

<Timer ts="2011/08/22 13:37:55.576 GMT" tid="1186703680" entry-no="37" name="Total chunk import time -" total="0.000000">1</Timer>

<Trace ts="2011/08/22 13:37:55.576 GMT" tid="1186703680" entry-no="38">xImporter: Total chunk import time: 0.000000000 milli-seconds.</Trace>

<Trace ts="2011/08/22 13:37:55.577 GMT" tid="1186703680" entry-no="39">1 Segments were Successfully imported.</Trace>

<Trace ts="2011/08/22 13:37:55.612 GMT" tid="1155234112" entry-no="40">xStructuralTransformer: : Start -&gt; End: 0.000000000 milli-seconds.</Trace>

<Trace ts="2011/08/22 13:37:55.612 GMT" tid="1155234112" entry-no="41">xStructuralTransformer: Thread signalled to stop: RC = 0x0</Trace>

<Trace ts="2011/08/22 13:37:56.503 GMT" tid="1176213824" entry-no="42">xValueTransformer: : Start -&gt; End: 0.000000000 milli-seconds.</Trace>

<Trace ts="2011/08/22 13:37:56.503 GMT" tid="1186703680" entry-no="43">xImporter: : Start -&gt; End: 0.000000000 milli-seconds.</Trace>

<Trace ts="2011/08/22 13:37:56.509 GMT" tid="1165723968" entry-no="44">[MDS=56vm Repository=SITES_SANDBOX_2 ClientSystem=MAINFRAME Port=MF_TO_MDM_SITE_DATA_PORT

################################

I dont find any thing which says this particular record is Skipped !!!

Can anyone help!!!

Kind Regards

Eva

Former Member
0 Kudos

Hi Eva,

Please check if SKip unchanged record parameter is set at repository level or server level.In case of server level it overrides the setting at repository level.

Thanks,

Ravi

former_member283645
Participant
0 Kudos

Hi,

I am not sure whether the Records are Unchanged or Not.

the Only concern is When a Record is not imported (But Skipped) then i should have a track of what records in the Incoming file are Skipped (Not Imported!!)..

I dont think this parameter will satisfy what i require!!!!

Kind Regards

Eva

Former Member
0 Kudos

Hi Eva,

This is the only setting that can help in this regard.Some degree of customization can help by accessing these logs.

MDM Console document says the following about Skip Unchanged Record setting:

True/False. If set to True, records updated by an import will not receive a change timestamp if their field, cached qualifier, or tuple field data values are not changed by the import. Import- and syndication-tracking timestamps will also be skipped. Skipped records are still recorded in the Import log, however.

Note: Attributes, non-cached qualifiers, and key mapping values are not covered by this parameter, and any import to these data types will trigger a record change timestamp, whether or not the data values in the record actually change as a result of the import.

In the [Server] section,the value of this parameter acts as the global default setting for all repositories.

Adding this parameter to a [Repository] section as a custom parameter overrides the global [Server] setting for that repository

I am pasting here a typical MDS.ini file:

[MDM Server]

XCS Ini Version=1

Accelerator Dir=/usr/sap/HMP/MDS00/mdm/accelerators

Log Dir=/usr/sap/HMP/MDS00/log

Report Dir=/usr/sap/HMP/MDS00/mdm/reports

Archive Dir=/usr/sap/HMP/MDS00/mdm/archives

Distribution Root Dir=/usr/sap/HMP/MDS00/mdm/distributions

Transport Dir=/usr/sap/HMP/MDS00/mdm/transport

Modifications Dir=/usr/sap/HMP/MDS00/mdm/modifications

Lexicon Dir=/usr/sap/HMP/MDS00/exe/Lexicons/

Extra DBConnection Validation=True

Log SQL Errors=True

String Resource Dir=/usr/sap/HMP/MDS00/exe/LangStrings/

Stemmer Install Dir=/usr/sap/HMP/MDS00/exe

Wily Instrumentation=False

Wily Instrumentation Level Threshold=10

SLD Registration=True

Skip Unchanged Records=True

Autostart=0

MDS Ini Version=1

RELEASE/UseAssert=True

Tracing Level=3

LogViewer Format Logging=False

LogViewer Format Tracing=False

SAP RFC Gateways=

Max Threads Per Operation=Auto

Lock Account After Failed Password Attempts=5

Lock Account Duration=1800

Minimal Password Length=5

Password Expiration Days=90

Password Expiration Warning=7

Disable Read Access To Corrupt Repositories=False

Default Interface Language Code=eng

Default Interface Country Code=US

Mail Server=10.250.2.33

Mail SMTP Timeout=600

MDS Scone=

Allow Console to Retrieve Files=True

Log SQL Modifications=False

Maximum DBMS Bind Count=512

Oracle Tablespace Files=1

Enable Change Stamp Logging=False

Client Ping Timeout Minutes=0

Inactive Client Timeout Minutes=30

Value Retrieval Threshold=0

Family Retrieval Threshold=30000

Protect Family Nodes With Locked Data=False

Number Of Stemmers Per Language=2

TrexDllPath=

Index_Page_Margin=10

Bulk Import Silo=True

Safe Silo Mode=False

TrustFiles Dir=/usr/sap/HMP/MDS00/exe

Multithreaded Matching=False

[MDM Server/Databases/VENDOR_HZL_112010_V1HMDMPRD:1521/HMPORCL_20_16_4_3]

Port=2375

Login=system

Password+=JU0JI3RR0MQPR7Q3BSB4T5P7HS3D26V2N7NESO768NI7M6E333R0

Stemmer Language=

Stemmer Variant=

Valid Keyword Chars=abcdefghijklmnopqrstuvwxyz0123456789

Max Large Text Length=250000

Number of Rows Per Fetch=100

Max Initial MB to Retain=4

Max Send Failure MB to Retain=4

Workflow Detailed Report=True

Mail Server=10.250.2.33

Mail SMTP Timeout=600

This will give a import log entry,but your import map should have definite criteria for skipping entries.

Do a proper test of a Exact match and skip that,and then have a look at import log.

Thanks,

Ravi

Former Member
0 Kudos

Hi Eva,

Let me summarise my understanding here,

You have a Import map which is used for updation of records as it skips those already present.This map will not create new records.So already present records will be updated and new will be skipped.

Thus your requirement is to know dynamically which record is in MDM and which is not.

I dont think one can know this without actually doing some import or customization.

Thanks,

Ravi

former_member283645
Participant
0 Kudos

Yes.

we dont want to create new materials if there is material number in incoming file which is not available in MDM currently.

So we Skip them..

Now, How can we know that this particular material is Skipped!!!

Kind Regards

Eva

Former Member
0 Kudos

Hi Eva,

We have a setting in MDS.ini which can help you in this regard,

Skip Unchanged Records

True/False. Records updated by an import will not receive a change timestamp if their field data values are not changed by the import. Import- and syndication-tracking timestamps will also be skipped. Skipped records are recorded in the Import log.

Needless to say like all MDS.ini settings this will to need restart of MDS system.

Hope this helps.Let me know your findings.

Thanks,

Ravi

former_member283645
Participant
0 Kudos

Hi,

Does this mean that..

Skip Unchanged Records = True

Then skipped records are Stored in Import Log that we see in ..

/mdm/distributions/MD4_ORCL/XXX_REP/Inbound/MAINFRAME/MF_PORT/Log/..

Records updated by an import will not receive a change timestamp if their field data values are not changed by the import. Import- and syndication-tracking timestamps will also be skipped

Will the Above time stamp fields be created in my repository??

Kind Regards

Eva

Former Member
0 Kudos

Hi Eva,

As per my understanding this setting only holds true for records for which SKIP import action is defined and for those whose data values do not change in import.For all other cases timestamp will be generated.

I would suggest to do a test run in test environment.

Import a record which is already there in repository and update it.

Import a record which is already in repository and with no new updates.

Check for log files for the 2 records.

Let me know your observations.

Thanks,

Ravi

Former Member
0 Kudos

Hi Eva,

Please let me know your findings.

Thanks,

Ravi

Former Member
0 Kudos

Hi Eva,

we dont want to create new materials if there is material number in incoming file which is not available in MDM currently.

Yes, I feel that you can achieve notify through PI Alerts for those Material Number which are not available into MDM.

Please refer this blog for compelete details [LookUp in to the MDM From SAP PI|http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/13342] [original link is broken] [original link is broken] [original link is broken];

Regards,

Mandeep Saini