cancel
Showing results for 
Search instead for 
Did you mean: 

Sequential numbering in SAP MDM

Former Member
0 Kudos

Dear MDM experts,

I am working on a new project using MDM as the SOR of PS project master data. And the main function we need is to generate number for projects.

I know that we can create ports that could provide number range via a lookup table, however there's one problem that I am still sticking with, which is to generate sequencial number for project. Here's the details:

All projects could be either a parent project, or a child project that is under a certain parent project. One parent project could have multiple child projects.

The naming requirement is, whatever the parent project number is, its child project's prj number should be PARENT_PROJECT_NUMBER-01, -02, -03....

For example, I have a parent project called TJ14SJ302000001, so all its child project number should be

TJ14SJ302000001-01

TJ14SJ302000001-02

TJ14SJ302000001-03

...

How can I do that using MDM, can anyone give me a clue? I have considered calculation expression function in the field, but then I find it's dynamic which means when the total number of child projecgt increases, the COUNT will increase as well so the number is changing....I'm not thinking of a workflow with assignments but want to know if that's the right direction...

Regards,

_________

Angela Z

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi, does anyone have a possible hint?

I think using either field expression or assignment will face a problem: the formula cannot calculate across different records in the same table, hence it cannot count how many child projects have already been created. Am I right on this point?

Former Member
0 Kudos

Hi,

I am not sure how the data is flowing in your landscape. A project is created in SAP PS, but how and when MDM is coming in the picture.

It would be helpful, if u would elaborate.

Regards,

Former Member
0 Kudos

Hi Negi,

Here's the scenario -

Data flow: A customized project management system (call it system ABC) creates the project master (without a project number). It sends the project basic information to MDM, and MDM generate the project number by rules and send back it to ABC as well as to ECC. Generally speaking: ABC -> MDM -> ABC/ECC

Project number rule:

- parent project: AA+BB+CC+AutoID (8 digits). AA = province abbr, BB = year (if 2014, BB = 14), and CC = project type (like SJ, KF, etc)

- child project: parent project number + "-" + child project number (01, 02, 03, ...). So if there are already 4 child projects under a certain parent project (eg, SH14SJ00000007), then it should get the number as SH14SJ00000007-05.

Now I am able to generate the parent project number by field's expression calculation. But for the child project, since it needs the system to calculate the number of projects that already exists under a parent project, I am still struggling with...

Regards,

_________

AZ

Former Member
0 Kudos

Hi,

I am not sure if in MDM you would be able to find the current no. of child project.

But, another approach could be to identify the current no. of child project in SAP ECC and send it along with other details, then in MDM you can concatenate the same.

Regards,

Former Member
0 Kudos

Hi Anqi,

There is no straight forward way to get this done.I can suggest a workaround in which you can leverage PI for the calculations.It would be advisable to store parent project in another field.

For Child Project no - do a syndication based on the Parent field value.PI would calculate number of segments sent out and that would be the count which you are looking for.Additionally the above logic can be easily built in PI and once these computations are done an xml can be dropped in the inbound port.This would update the Project Number.

Thanks,

Ravi

Former Member
0 Kudos

Hi Ravi,

Thanks for your response!

My problem is, as per the business design, MDM is expected to be the "number generator" and we have very limited PI capabilities (not considering using BPM or so).

Currently I'm trying to work out a similar solution like the one you provided:

Table Design:

- One main table of Parent project with a qualified table of Child projects. Qualifiers are all child projects related fields, and the parent project number and name as the non-qualifier.

- In the main table, 3 special fields are leveraged, and they are dynamically changed everytime when a new child project comes.

  1. a Count field (calculation field) that counts the current number of child projects in the qualified table.
  2. a Child project number field (calculation field) that produce the last(largest) child project number (parent project number + "-" + Count).
  3. a text field of the child project name.

Data flow:

  1. When the child project basic information comes from system ABC (without the child project number, but with its parent information like code and description as well as child project name/type/etc), it will update to its parent projects' qualified table as a child project.
  2. Once the qualified table records added, the count in the main table will automatically provide the right sequence for this one child project. And the child project number and child project name will reflect this newly add child project's number and name.
  3. The syndicator sends out the child's info with the child project number from main table, and using PI, the data will be pushed back to MDM to update the child project number in the qualified table.

In this design, the Count, the child project number and the child project name fields in the main table will always just reflect the last child prj.

Right now I'm still facing two issues using this approach:

  1. How can the Syndicator outbound only the new child project records, without having all the previous child project coming alone together.
  2. If using web service, I don't know how this can be done....

I'm still working with my PI and developing team on this.

I'll really appreciate If you or any other experts could take a look at above solution and give me some feedback.

Many thanks!

____________

Anqi

Former Member
0 Kudos

Thanks Ankit,

But we have to make sure the number creates from MDM and then send to ECC, not vice versa...

Former Member
0 Kudos

Hi Anqi,

Thanks for explaining your approach in detail.

with regard to your comment "we have very limited PI capabilities (not considering using BPM or so)" - We wont need a BPM development and believe me its very small change.

This would involve use of nodal functions in message mapping in PI.Let me give you an example - with regard to your first problem  - PI can pick the value which is latest on basis of a criteria and send only that value in the inbound file for MDM. This criteria can be a Flag which is set while populating child project or logical compaision of Project values.Not a major development at all!

Regarding point 2.This can achieved this way too.Portal can read the data from MDM and based on logic set in the code,it can write the value.what Portal landscape are working on?


Thanks,

Ravi

Former Member
0 Kudos

Hi,

What i meant to say is that you can concatenate the child project number(which is identified in ECC and sent to MDM along with other prohect details) with your parent project number( which you have calculated by "field's expression calculation" in MDM).

Regards,

Former Member
0 Kudos

Hi Ravi,

Regarding to using portal: we are using customized portal, meaning not the portal of NetWeaver component but totally JAVA developed. So we'll not take this as an option currently.

As for now, we have persuaded the legacy system dev team  to send us the count of child projects to MDM, so that the only thing MDM needs to do is to contatenate the parent project number and the the count....I feel deeply pity about this solution, since I so want it to be realized within SAP side.

So I'll keep digging on my own later about using PI. As of now, we no longer have the sequence number issue...

Many thanks for your suggestions!!

Regards,

Anqi

Answers (0)