11 Replies Latest reply on Feb 9, 2014 8:48 PM by david renz

    IMMWMSNode.UpdateDB?

    david renz

      Is there any more complete documentation than this:

      ArcFM Desktop Developer Guide

      or this:

      ArcFM Desktop Developer Guide

      or this (the descriptions are just missing for most of these)

      ArcFM Desktop Developer Guide

       

      I am trying to figure out what some code is doing, and the documentation is missing some descriptive information.

      Is there a more complete set of documentation out there somewhere?


      thanks

      David

        • Re: IMMWMSNode.UpdateDB?
          david renz

          Or ... failing any link to more complete docs ... could someone tell me what the IMMWMSNode::UpdateDB() does?

           

           

          The specific code block I am looking at is this:

           

          IMMWorkflowManager pWFM = (IMMWorkflowManager)mobile;

          IMMWMSNode pWMSNode = pWFM.GetWMSNode(ref sNodeType, ref workRequestId, ref bReadOnly, ref bSuppressMsgs);

          IMMWMSWorkRequest pWMSWorkRequest = (IMMWMSWorkRequest)pWMSNode;

          pWMSWorkRequest.set_OwnerID(ref iOwnerID);

          pWMSNode.UpdateDB();

            • Re: IMMWMSNode.UpdateDB?

              I belive that update db is trying update the database with the information on the wms node object.  Are you running into a particular error, or just curious about what its supposed to do?

                • Re: IMMWMSNode.UpdateDB?
                  david renz

                  Robert,

                   

                  Thanks for the response.

                   

                  There is no particular error that is coming out of this. Rather, I am trying to document exactly what our process is doing. It was written several years ago by a consultant. So we are just trying to document workflows, as we move towards a WMS change.

                   

                  Given the name and the context, I would characterize your statement as being on target.

                  But I don't know which DB it is updating, there are several involved in this workflow. I can guess which db, but that is not really helpful either.

                  I have the node info, that is not the problem.

                   

                  Do you know of any solid documentation for these (or any .. for future reference) ArcFM objects?

                   

                  thanks

                  David

                    • Re: IMMWMSNode.UpdateDB?

                      You seem to have called out all the relevent documentation.  Most clients make use of a single process framework database, but if you have multiple process framework databases than it would be the  process database that was used to instantiate the WMS node (which in your case would be the connection on the process framework application that was used to instantiate the workflow manager extension)

                        • Re: IMMWMSNode.UpdateDB?
                          david renz

                          Ah, so that is helpful. Thanks!

                           

                          You are saying that for the IMMWMSNode:UpdateDB() function, the DB that it is talking about is the Process Framework db?

                          Do you know what exactly is being updated, since, in our instance, the Process Framework tables are spread out across several schemas?

                          ie: What does UpdateDB do?  -- aside from "updating the db"

                           

                          thanks for the lead.

                            • Re: IMMWMSNode.UpdateDB?

                              Yes, it updates the process framework database.  In terms of which tables are being updated, that depends on the WMS node that is being updated.  ArcFM doesn't provide an object/data mapping for their objects, but if you refer to their px and wfm database schemas (ArcFM Desktop Developer Guide / ArcFM Desktop Developer Guide) you should be able to figure most of it out.  As an example, the IMMWMSWorkRequest object corresponds to a row in the MM_WMS_WORK_REQUEST table.  A call to UpdateDB on a IMMWMSWorkRequest object will update this table, along with updates to some of its related table (MM_WMS_WR_TYPE, MM_WMS_WR_USERS, or potentially even the MM_PX_CURRENT_STATE table).  If you really need to know what's being updated by which calls, you'd have to write code to manipulate each property on each object, start an oracle trace, then call the UpdateDB method.  It takes quite a while to set up, but you'd sure learn a lot about how the application works.

                              • Re: IMMWMSNode.UpdateDB?
                                Joseph Hershman

                                You process framework should all be in one schema owned by process.  Is there any reason you have them in more than one schema?

                                 

                                UpdateDB will update all tables and related tables to either WR or Design.  I mostly agree with Robert, except State which I think can only be updated via the IMMPxNode interface and requires a call to UpdateNodeToDB on the IMMPxApplicationEx interface to actually update (or can can use the transition objects to change state)

                                  • Re: IMMWMSNode.UpdateDB?
                                    david renz

                                    Joseph,

                                     

                                    I did not fully explain the process schema situation.

                                    The ArcFM process framework stuff is all in one schema. There are some additional tables related to this code that live in other schemas.

                                    This code is part of a solution which touches a few different things.

                                     

                                    Did you both just stumble upon this stuff, through trial and error?

                                     

                                    thanks for the continued info.

                                    David

                                      • Re: IMMWMSNode.UpdateDB?

                                        Definitely trial and error.  The level of detail you find with software documentation varies wildy, but I would consider ArcFM's to be on par with most vendor's documentation.  It's good enough to give a developer everything they know to develop custom code and to figure out how all the pieces work through trial and error.  There aren't too many vendors who document the complete inner workings of their solution on-line (the only exception to this would be any sort of open source solution).

                                        While I'd love for their on-line documentation to contain more details in certain places (and they're usually receptive to reasonable requests for more information) if you want in-depth info about how things work to support your documentation or development, you'll usually need to reach out to the community (as you've done), tech support, or try and track down your local developer (or dba).

                                          • Re: IMMWMSNode.UpdateDB?
                                            david renz

                                            Am just accustomed to ESRI documentation, which is fantastic. I would say the ArcFM is much less consistent. I expected more from Schneider. A description for each function is not asking for the inner workings of the API, there is quite a difference.

                                             

                                            Thanks again, Robert.

                            • Re: IMMWMSNode.UpdateDB?
                              david renz

                              I guess I was just hoping for more documentation on the UpdateDB method than "void UpdateDB()".

                              I have a request in for monitor session permissions from DBAs but that is not ready yet.

                              Was hoping to get help from docs while I wait.

                               

                              Your links to the tables were very nice.

                              thanks for your help.