Master Data Services is driving me crazy! Please help - multiple questions


Hi

I am having some MAJOR issues with MDS and need some assistance - there are a number of problems I am currently experiencing and cannot find any documentation to assist.

The first one is;

From the MDS Management console, I have a version which is status commited and ready under version management. I want to create a new version which is open

1st question: how can you do this programatically without the front end ? Which stored procedure performs this task?

1st issue: using the front end - pressing "copy" takes around 30seconds then says "An unknown error has occurred" - this error is not helpful atall and means literally nothing. I cannot create a new open version

2nd Issue:

I Have an SSIS package which populates a table STG.CCM_Leaf - the package has 4 steps - assuming I have the open version which has worked in the past the package is configured as follows:

Step 1: Get batch and set to variables:

DECLARE @ModelName nVarchar(100) = 'Actuarial Classes' 
DECLARE @Model_id int 
DECLARE @User_ID int 
DECLARE @Version_ID int 
DECLARE @Version_Name nvarchar(100)
declare @batch_tag nvarchar(100)
SET @User_ID = (SELECT ID  
                 FROM mdm.tblUser u 
                 WHERE u.UserName = SYSTEM_USER) 
SET @Model_ID = (SELECT Top 1 Model_ID 
                 FROM mdm.viw_SYSTEM_SCHEMA_VERSION 
                 WHERE Model_Name = @ModelName) 
--get latest model version id
SET @Version_ID = (SELECT MAX(ID) 
                 FROM mdm.viw_SYSTEM_SCHEMA_VERSION 
                 WHERE Model_ID = @Model_ID)
set @Version_Name = (select Name
                              FROM mdm.viw_SYSTEM_SCHEMA_VERSION 
                              WHERE id=@Version_id)
set @batch_tag = 'CCM' + '-' + Convert(Varchar,GetDate())

Select 
@ModelName
,@Model_id
,@User_ID
,@Version_ID
,@Version_Name
,@batch_tag


The output of this sql step stores the necessary values

Step 2: Pick up the rows and add in the above variables from my source and store them in STG.CCM_Leaf

Step 3: Process the batch in MDS

EXEC [stg].[udp_CCM_Leaf]
      @VersionName = ?,
@LogFlag = 1,
@BatchTag = ?

Step 4: Validate the model:

EXECUTE mdm.udpValidateModel 
@User_ID = ?, 
@Model_ID = ?, 
@Version_ID = ?,
@Status_ID = 1

The entries appear AS expected when i load the excel MDS add-in and this works like a charm.

The idea is, that the user will verify with an additional dropdown column whether the entry is accepted or rejected in excel and press Publish to push them back

As a test, I set the top entry to "Accepted" and pressed publish it says it is successful.

When i run Select * from stg_CCM_Leaf - the row which was "Accepted" still shows a NULL value in that column despite the excel open version showing accepted.

Q2:: Where is the "Accepted" value actually stored and why can't i see it in the LEAF table? if excel can see it it must be stored somewhere else - why can i not see it in this table>??

Question3:

Again - in MDS i can highlight all rows and delete them using the Delete button. All rows dissapear from excel and the underlying _LEAF table - if i then try and re-insert the rows I get an error on all rows and none of them will insert.

Final question: How do i "clean out" an entity for an open version? What is the stored procedure to do so - Why when  Ihave deleted an entry can i not re-load a new one with the same CODE value?

Sorry for the long post but all these questions are driving me crazy, I cannot find anty MDS documentation to help me on any of these subjects

Thanks


J

August 26th, 2015 10:29am

Hi

Further to this.. I logged in locally and ran the same "Copy" button - and got this error:

[ArgumentException: The argument value: 0 is not valid for parameter: modelInternalId.
Parameter name: modelInternalId]
   Microsoft.MasterDataServices.WebUI.ServiceAdapter.CopyVersion(Int32 modelInternalId, Int32 versionInternalId) +824
   Microsoft.MasterDataServices.WebUI.Audit.Versions.CopyClick() +256
   System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +153
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3804

Free Windows Admin Tool Kit Click here and download it now
August 26th, 2015 10:58am

Hi James,

Thank you for your question.

I am trying to involve someone more familiar with this topic for a further look at this issue. Sometime delay might be expected from the job transferring. Your patience is greatly appreciated. 

Thank you for your understanding and support.

Regards,

August 27th, 2015 8:56pm

Hi Charlie

This product is a nightmare riddled with problems,

There is scant documentation - scant support and it's actually very frustrating + not the usual I expect from an MS Product - Bit of a rant but hopefully somebody in power picks this up and realises that customers are in the ocean without a paddle with this one!


  • Edited by James OHara Wednesday, September 02, 2015 8:19 AM
Free Windows Admin Tool Kit Click here and download it now
September 2nd, 2015 8:19am

Hi James,

Sorry for your frustration. 

For issue 1, can you share the version of MDS you are using?  You can contact Microsoft Support team so that someone can debug into this.  Sometimes this can be machine specific issues.

For the question: how can you do this programatically without the front end ? Which stored procedure performs this task? 

We have a full open web APIs for programming.  All the MDS functionalities are open in the API level but normally it is not encouraged to query the backend database directly as we treat most backend schemas as implementation details which are subject to change.  You can find the detailed information on APIs here:https://technet.microsoft.com/en-us/library/hh230994(v=sql.130).aspx

The particular api for copy is here

Here are some examples on how to code against APIs: here.

For issue 2, you shouldn't check  stg_CCM_Leaf  for the operations done through Excel add-in or Web UI.  Staging table contents will only be valid through staging process such as done through SSIS work flow.  The operations which are done in Excel or Web UI will be conducted directly in the entities inside models. 

For issue 3, again, you cannot check stg_CCM_Leaf given the operation is done through Excel.  As long as it works fine end to end, you don't need to check the data stored in the backend and the data storage mapping is implementation details which is not public documented. 

Thanks,

Sherry

September 3rd, 2015 3:54pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics