Skip to end of metadata
Go to start of metadata

The Technical Document Management Connectivity (TDMC) ES bundle facilitates the usage of SAP Product Lifecycle Management Document Management System (SAP PLM DMS) as a document repository. The TDMC ES bundle allows the upload of documents to SAP PLM DMS and the retrieval of documents from SAP PLM DMS through enterprise services. The bundle can be used by customers and partners to integrate additional functionality into the SAP PLM solution included in SAP ERP 6.0.

The TDMC ES bundle also allows storing a document created by third-party authoring systems directly in SAP PLM DMS, allowing the document to be directly connected into an ERP process. The TDMC ES bundle is also valuable in that it delivers a universal interface to view documents created by an authoring system, eliminating the need for each party to purchase an expensive license for the authoring system to do so.

The TDMC ES bundle becomes a useful tool once documents created in other programs are uploaded into SAP PLM DMS. Once a document is stored in SAP PLM DMS, it becomes integrated into SAP ERP 6.0 as the documents can be linked to all-important SAP ERP business objects such as Purchase Order, Material, Quality Issue Notification, Functional Location, and Production Order.

The Technical Document Management Connectivity ES bundle is useful for:

  • Breaking down any application walls that stand between a company's various departments
  • Creating cost efficiencies in that this bundle eliminates the need for all users to buy and install licensed authoring tools. The TDMC ES bundle serves as the sole common application interface required for all mutually used documents stored in SAP PLM DMS.
  • Allowing documents to be saved locally, but managed centrally - ensuring both easy access for each user and optimal performance because large blocks of data are efficiently managed by making use of the ability of SAP PLM DMS to manage documents in a distributed content server landscape.
  • Alleviating the cumbersome and time-consuming process of uploading and saving documents and document structures manually to SAP PLM DMS.
  • Facilitating the creation of reports on the centrally managed data in SAP PLM DMS.

Technical Document Management Connectivity (click to enlarge)





Audience

The TDMC ES bundle will be most attractive to mid- to large-sized companies willing to invest in connectivity products. This ES bundle would also be useful for any organization that produces documents via third-party applications and wants to centrally manage those documents. Most commonly these companies will fall under the following industries:

  • Discrete manufacturing (in general)
  • Consumer Product Goods (CPG)
  • Automotive

People with a wide variety of job titles will find the TDMC ES bundle useful, especially those in engineering. Common job titles using this ES bundle include:

  • Design engineer
  • Engineering manager
  • Production engineer
  • Graphic designer
  • Anyone using third-party authoring tools

Third-party authoring tools are used for tasks such as creating technical documentation, packaging artwork design, and making technical calculations (often using computer-aided engineering, or CAE, tools).

For details on Service Operations, Business Objects and Process Components, please check the ES Workplace.


How to Use This ES Bundle

Many companies, especially those based on engineering services, produce large numbers of very large documents. The problem emerges when people in scattered departments and locations must view and work on the same document - requiring each person to first have an individual, expensive license for the appropriate authoring tool - a software tool that may be used infrequently. Too often, the license is in fact not purchased, and these various professionals are left trying to convert those documents into commonly readable formats or to produce a paper printout.

These same companies also find project management to be a nightmare, as those same documents are located in various departments and offices none of which can be easily accessed from any one location. In a case in which there is only a central holding place for such documents, their creators and users are reluctant to invest in the time-consuming process of uploading and saving these cumbersome files to that central server - a process that requires an extra, deliberate step.

The Technical Document Management Connectivity ES bundle simplifies this process by making the viewing, sharing and changing of documents seamless. Each document is automatically saved to a central location, and can be searched for and read from any internal or outside location using any number of third-party applications provided access is granted.

This section will explore a series of use cases for the Technical Document Management Connectivity ES bundle. Each use case will show how different outcomes can be achieved by using the enterprise services in different combinations. While these examples illustrate a few of the ways that this ES bundle could be used, the intention is to show the flexibility and re-usability of these business objects and enterprise service operations so that you will have a clearer understanding of how to best deploy them in your own environment.

Use Case 1: Creating and Reviewing a Technical Document

For the purpose of explaining TDMC, let's say the ES bundle is being used by a housewares maker called Home Alone, which is designing a new line of electric can openers. Home Alone is a huge multinational, with its business headquarters in Kansas City, manufacturing facilities in Juarez, Mexico, and various partners located throughout the world.

SAP PLM DMS must first be installed within the company's network, creating a basis for interfacing all other systems and creating a central storage area for the entire company's document profile.

To start work on the design of the can opener's handle, Fred, the engineer, must first Create Document. Since Home Alone outfits all its users with authorization to access SAP PLM DMS, the CAD document Fred creates is automatically saved to Home Alone's server in Kansas City.

Over the months Fred works on the can opener handle design by checking out CAD files to his CAD tool (authoring system) for making changes and checking it back to SAP DMS. By using Check In Document File Variant and Check Out Document File Variant he makes sure, that the document file variant is locked to other colleagues during the time he is working on the can opener.

His current version of the CAD document drawing is viewed weekly by his manager, Susan, who works in the Kansas City office. Each Tuesday, she runs a Find Document by Elements_V1 search within the CAD documents, using the key words "open projects." Within these results she uses Read Latest Released Document Version to ensure she finds the most current changes of all of the remote engineers' CAD drafts. She runs Read Document File Variant Basic Data to get the IDs of the CAD files attached to the document and Read Document File Variant by ID and File Variant ID to transfer the CAD files to a viewer, where she is able to make comments. From the viewer she saves the comments (redlinings) as an additional variant to the document in SAP DMS by using Create Document File Variant.

Each Tuesday Fred views the latest version of his designs with comments from Susan by using Read Latest Released Document Version, then Read Document_V1. He then runs Create Document Version so that his old work is saved and viewable, but the new work he is about to do will clearly be marked as the most recent design.

Please note that this description highlights the logic behind the services, but in a real implementation, the user would not invoke the services manually. Services are typically accessed either through a composite application or transparently to the user with an application calling the services.

Step

Enterprise Service Invoked

Step 1: The design engineer creates a new document

Create Document

Step 2: To checks in and out files to make changes, the user makes sure that the document file variant is locked to other users

Check In Document File Variant
Check Out Document File Variant

Step 3: The engineering manager searches for the document based on selected criteria

Find Document by Elements_V1

Step 4: The documents are viewed weekly. The user selects the latest released version from the search results to ensure that he or she reads the recent information

Read Latest Released Document Version

Step 5: The user then selects the ID information to read the relevant information

Read Document File Variant Basic Data

Step 6: To display and comment, he or she transfers the files to a viewer

Read Document File Variant by ID and File Variant ID

Step 7: To save the comments, he or she creates an additional variant to the document in SAP DMS

Create Document File Variant

Step 8: The design engineer selects the latest released document version to read his latest version with the recent comments

Read Latest Released Document Version then
Read Document_V1

Step 9: The user then creates a document version, so that his old work is saved and viewable and the new work will clearly be marked as the most recent design

Create Document Version



Use Case 2: Approving

Fred finishes his work on the can opener handle, and Susan signs off on the rest of the opener's internal design. Before doing so, she locks the documents so that the final version cannot be altered by unauthorized users. She then runs Release Document.

Home Alone works with a package design firm in New York to create the case and boxes for the new can opener. The design firm's administrative assistant Chip is charged with downloading and printing full-color copies of the drawings to be used by the design team. Chip logs into Home Alone's server in Kansas, opens a viewing application, in this case Adobe Acrobat Reader, and accesses all of the design firm's Home Alone products with Find Document by Property Valuation, searching for products that contain the phrase "can opener".

Chip then runs Read Document File Variant Basic Data to get the ID of a CAD file and Read Document File Variant by ID and File Variant ID to transfer the CAD file to a viewer. He can then email a screenshot from the viewer to his colleagues on the design team and print it for his company's records.

Step

Enterprise Service Invoked

Step 1: The engineering manager locks the documents to prevent that the final version is altered by unauthorized users, then he or she signs off the documents

Release Document

Step 2: The graphic designer searches for the documents based on selected criteria and accesses them in a viewer

Find Document by Property Valuation

Step 3: The graphic designer selects the ID information to read the relevant information

Read Document File Variant Basic Data

Step 4: The graphic designer transfers the relevant files to a viewer to be able to send the relevant information to other users

Read Document File Variant by ID and File Variant ID



Use Case 3: Final Review

Even though Fred's work is complete and he's gone surfing for the day, Susan's work is not done on the can opener project. She still has to make sure that all elements of the can opener are designed and tested and that the manufacturing engineers are on track to start cranking out openers at the Juarez plant.

Before the release of the Technical Document Management Connectivity ES bundle, Susan would have had to set up a middle-of-the-night call to Fred in Hawaii to see if his drafts were finished, run around to cubicles at her Kansas City office to check with engineers and managers to ensure all other elements were on track, set up a teleconference with the design firm in New York and pray the drafts were making it via post to the Juarez plant.

Instead, Susan checks in with Home Alone's server and does a quick search by elements, using "can opener" to pull up all relevant documents. In a matter of minutes she is able to see whether everything has been filed, and thanks to Read Latest Released Document Version, her team is able to do a final check of all the details to ensure the designs are linked into the documents before the illustrious can opener goes to production.

Step

Enterprise Service Invoked

Step 1: The engineer manager searches for the documents based on selected criteria to pull up all relevant information

Find Document by Property Valuation

Step 2: The engineer manager selects the latest released version from the search results to ensure that everything has been filed before the product goes into production

Read Latest Released Document Version



Use Case 4: Review and Update by the Sales Manager

Soon after production was launched, the sales manager Alex starts to maintain additional sales attributes for the document describing the can opener so that the most important sales information is at hand without having to look into the manuals. He first uses Find Allowed Document Property Valuation by Type Code, which gives him the allowed attribute values. He then uses Read Document Property Valuation to get an overview of the current attribute values and then uses Update Document Property Valuation to update the attributes.

After having done his job, he needs to change the status of the document. He looks up allowed status values using Find Allowed Document Status and then changes the status from "Released for Production" to "Released for Sales".

Step

Enterprise Service Invoked

Step 1: The sales manager searches for the document based on selected criteria that gives him the allowed attribute values

Find Allowed Document Property Valuation by Type Code

Step 2: To get an overview of the current attribute values, he or she reads the relevant information

Read Document Property Valuation

Step 3: Update the attributes

Update Document Property Valuation

Step 4: To change the status of the document, the user searches for the document based on selected criteria

Find Allowed Document Status

Step 5: Update the status of the document

Update Document Version Status



Use Case 5: Cancelation

Fran, service manager at Home Alone, finds out that during the update of the service documentation by his team, the outdated service manual was not removed from the document holding all information about the can opener in SAP DMS. He removes the outdated file variant by using Cancel Document File Variant.

Step

Enterprise Service Invoked

Step 1: The user can delete an outdated file variant

Cancel Document File Variant



Best Practices

Simple Sample App available

If you are looking for best practices in consuming enterprise services from the Technical Document Management Connectivity ES bundle, please refer to the Simple Sample App Create Quality Notification and Upload Document as a ready-to-run example, including testing data for immediate use.

Using This ES Bundle with Partner Applications

To store e-mail correspondence as simply and efficiently as possible, an extension was implemented in Microsoft Outlook that leverages the TDMC ES bundle. Using the TDMC ES it is possible to transfer individual e-mails or entire e-mail folders from Microsoft Outlook to the SAP PLM DMS.
The solution that has been implemented by SAP consulting has been described in the article Taking IT Management Further with Enterprise Services - A Practical Example that has been published in the ProduktData Journal (No. 2 | 2007).

Existing Sample Code

Here is a little piece of code showing how to use the interfaces of the enterprise services from the TDMC ES bundle. This example focuses on searching a document and extracting the meta data from the document

#define WIN32_LEAN_AND_MEAN
#define _CRT_SECURE_NO_DEPRECATE#include "DocumentSimpleByElementsQueryResponse_USCOREInSoapBinding.nsmap"
#include "gsoapWinInet.h"#include "shellapi.h"#define SERVER "erp.esworkplace.sap.com:80"
#define CLIENT "800"
#define USERID "<your ES Workplace userid>"
#define PASSWD "<your ES Workplace passwd>"void main(int argc, char *argv[])
{
  if (argc != 2) {
      printf("Usage: Win32Client <DocumentName>\n");
      exit(EXIT_FAILURE);
  }  struct soap Soap;
  soap_init2(&Soap, SOAP_IO_DEFAULT | SOAP_IO_KEEPALIVE,
      SOAP_IO_DEFAULT | SOAP_IO_KEEPALIVE | SOAP_IO_FLUSH);
  soap_register_plugin(&Soap, wininet_plugin);  Soap.userid = USERID;
  Soap.passwd = PASSWD;  bool False = false;
  //////////////////////
  // Global Data Type //
  //////////////////////

  SAP__DocumentTypeCode DocumentTypeCode;

  //////////////////////////////////////
  // Call 'Find Document by Elements' //
  //////////////////////////////////////

  SAP__DocumentSimpleByElementsQueryMessage_USCOREsync    FindRequest;
  SAP__DocumentSimpleByElementsResponseMessage_USCOREsync FindResponse;

  ZeroMemory(&FindRequest.DocumentSimpleSelectionByElements,
      sizeof(FindRequest.DocumentSimpleSelectionByElements));

  FindRequest.DocumentSimpleSelectionByElements.DocumentName                        = argv[1];
  FindRequest.DocumentSimpleSelectionByElements.DocumentTypeCode                    = &DocumentTypeCode;
  FindRequest.DocumentSimpleSelectionByElements.DocumentTypeCode->__item            = "";
  FindRequest.DocumentSimpleSelectionByElements.DeleteIndicator                     = &False;
  FindRequest.DocumentSimpleSelectionByElements.ComputerAidedDesignDrawingIndicator = &False;

  printf("\nCalling 'Find Document by Elements' for Document '%s' ...\n",

  FindRequest.DocumentSimpleSelectionByElements.DocumentName);

  if (soap_call___SAP__DocumentSimpleByElementsQueryResponse_USCOREIn(&Soap,
     "http://" SERVER "/sap/bc/srt/xip/sap/ECC_DOCUMENTSEQR?sap-client=" CLIENT,
     NULL, &FindRequest, &FindResponse) != SOAP_OK) {
      soap_print_fault(&Soap, stdout);
      exit(EXIT_FAILURE);
  }  if (!FindResponse.__sizeDocument) {
      if (FindResponse.Log->__sizeItem) {
   printf("\n%s\n", FindResponse.Log->Item[0]->Note);
      }
      exit(EXIT_FAILURE);
  }
  printf("\nDocument found -\n");
  printf("\tDocName:   %s\n", FindResponse.Document->Name);
  printf("\tTypeCode:  %s\n", FindResponse.Document->TypeCode->__item);
  printf("\tAltDocID:  %s\n", FindResponse.Document->AlternativeDocumentID);
  printf("\tVersionID: %s\n", FindResponse.Document->VersionID);

  //////////////////////////
  // Call 'Read Document' //
  //////////////////////////

  SAP__DocumentByIDQueryMessage_USCOREsync    ReadRequest;
  SAP__DocumentByIDResponseMessage_USCOREsync ReadResponse;

  ZeroMemory(&ReadRequest.DocumentSelectionByID,
      sizeof(ReadRequest.DocumentSelectionByID));

  ReadRequest.DocumentSelectionByID.DocumentName          = FindResponse.Document->Name;
  ReadRequest.DocumentSelectionByID.DocumentTypeCode      = FindResponse.Document->TypeCode;
  ReadRequest.DocumentSelectionByID.AlternativeDocumentID = FindResponse.Document->AlternativeDocumentID;
  ReadRequest.DocumentSelectionByID.DocumentVersionID     = FindResponse.Document->VersionID;

  printf("\nCalling 'Read Document' for Document found ...\n");

  if (soap_call___SAP__DocumentByIDQueryResponse_USCOREIn(&Soap,
     "http://" SERVER "/sap/bc/srt/xip/sap/ECC_DOCUMENTIDQR?sap-client=" CLIENT,
     NULL, &ReadRequest, &ReadResponse) != SOAP_OK) {
      soap_print_fault(&Soap, stdout);
      exit(EXIT_FAILURE);
  }    printf("\nDocument read -\n");
  printf("\tUserName:    %s\n", ReadResponse.Document->UserName);
  printf("\tCreation:    %s",   ctime(&ReadResponse.Document->SystemAdministrativeData->CreationDateTime));
  if (ReadResponse.Document->Description) {
      printf("\tDescription: %s\n", ReadResponse.Document->Description->__item);
  }  for(int i = 0; i < ReadResponse.Document->__sizeFileVariant; i++) {
      printf("\nVariant %d read -\n", i + 1);
      printf("\tFormatCode: %s\n", ReadResponse.Document->FileVariant[i].DocumentFormatCode->__item);
      printf("\tPathName:   %s\n", ReadResponse.Document->FileVariant[i].DocumentPathName);
  }  printf("\nDone\n");
  }

System Requirements

Success Stories

Hirschvogel Automotive:

End-to-end Processes Where This ES Bundle Is Used

5 Comments

  1. How does this seemingly "new" module differ from the SAP DMS module in ERP2005?  Or is the only difference that the SAP DMS functions are called by enterprise services from other applications?  Thanks.

  2. The Enterprise Services bundle TDMC is not a new module, it the new eSOA interface layer for SAP DMS in ERP 2005.

  3. Former Member

    Peter, thank you for the awesome sample code.

  4. Unknown User (oqn5138)

    When you speak of third party apps. Could I include a bolt on app like AGILE PLM(this is are current/legacy system)

    I don't want to pull the users from  this environment  too fast. 

    thx

  5. Hi Larry,

    in principle, you're welcome to add any complementary content to the best practices or partner applications section.

    However, to double check: You don't mean Oracle's Agile PLM here, do you? If so, which kind of content you would like to add?

    Thank you and best regards

    Volker