9 Replies Latest reply on Feb 3, 2014 5:22 PM by Ron M-Oracle

    Is Approved Tag in workflow





      Can you please let us know whether ‘Is approved’ tag in workflow is to re-establish the relationship between the specifications or  to an earlier stage would mean that the spec would link to the approved parent

      spec replacing the approved child.


      Please let us know regarding the functionality of 'Is Approved' Tag under workflow tags in workflow.



      Rohini M

        • 1. Re: Is Approved Tag in workflow
          Ron M-Oracle

          The Is Approved workflow tag effects are listed in Kelly's reply.

          But it is a way to mark a specification as official/approved, and it also meant to be used when implementing extensibility, such as validation, workflow actions, email content extensions, and so forth. It allows the extension to know a workflow status by its tag, rather than by its name, which would differ by language. For example, a status called Official in English could be Officiel in French. Marking it with the Is Approved tag (or any tag, including your own tags, for that matter) let's you write validation against the tag, rather than having to write it against different languages.


          There are utility classes, such as the SpecWorkflowTagEvaluator, in the Extensibility Pack that can help with determining tags if you are writing code. See the Appendix in the Extensibility Guide document in the Extensibility Pack for more details.


          Message was edited by: Ron M

          • 2. Re: Is Approved Tag in workflow

            Any workflow status with this tag we would assume it means the object is in an approved state.  Off the top of my head I know we leverage this tag in a few places:


            1. Get Latest Revision functionality

            When a specification relationship is unlocked the system will automatically update the relationship with the latest "is Approved" version of the spec.  This functionality is extensible as well, so if you want to key off different tags or run any additional checks that is possible.


            2. Smart Issue

            We use this tag when deciding what nutrient profiles associated to the trade spec we issue. 


            3. Reference Reports

            We also use it with reference example reports we offer.  We sometimes leverage this tag in our parameters so we are only displaying approved objects.  


            Hope this helps.  Let me know if you have any further questions


            • 3. Re: Is Approved Tag in workflow

              Hi Kelly,


              Get Latest Revision functionality

              When a specification relationship is unlocked the system will automatically update the relationship with the latest "is Approved" version of the spec.  This functionality is extensible as well, so if you want to key off different tags or run any additional checks that is possible.



              From the above point I understood if we issue any specification the relationship will not be available intially for the issued specification and  the relationship will be updated automatically at Approved state based on this 'Is Approved' Tag right?


              If so if we give the same tag 'Is Approved' at any other status like Input review or Final Review will it work. I mean will the relationship updates automatically at Input Review Status?


              Please help.

              • 4. Re: Is Approved Tag in workflow

                It should work.  I'd caution against it because you wouldn't want approved specifications/hierarchies associated to specifications still under review.


                You could extend the logic to say things like, if the parent spec is in Input Review, update the relationship with the latest version of the spec that is tagged with "In Review", if the parent is approved only update relationships with the latest approved versions. etc

                • 5. Re: Is Approved Tag in workflow
                  Ron M-Oracle

                  So if you want to customize which workflow tags should be included in the Get Latest Revision updates, have a look at section

                  3.3Customizing the out-of-the-box implementation

                  of the GetLatestRevision document in the Extensibility Pack (in the ReferenceImplementations\GetLatestRevision\Documentation folder).


                  If you want to customize the behavior further than this, this document should help you.


                  Some customers also use Workflow Actions to lock or unlock the GLR when you move from one status to another status. This can be seen in the Extensibility Demo video on the collaboration site.




                  • 6. Re: Is Approved Tag in workflow



                    When we issue the Spec-001 which is having parent specs under related specs tab,in  the new spec(Spec-002) created from Spec-001 then the Parent-child relation ship is delinking(not transfering from Spec-001 to Spec-002) and the linking(the parent specs under Spec-001 are getting added to Spec-002) at approved status. Can you please let me know how it is happening?


                    Is there any chance to link the parent child relation ship linking to happen at statuses before Approved like 'Input Review' or any other.




                    • 7. Re: Is Approved Tag in workflow
                      Ron M-Oracle

                      Hi Rohini,


                      I wanted to confirm a couple of things:

                      1) Is this a Trade Spec scenario (with lower-level trade specs or parent trade specs) that you are describing? If not, which spec type(s) are you referring to?

                      2) Are you unlocking the parent-child relationship using the GetLatestRevision lock icon?


                      Yes, you can have the GetLatestRevision linking to happen at a different status if you want to. The key is knowing which Spec relationship you want to modify. For example, if you are trying to change the Trade spec lower level items relationship behavior, you would modify the "TradeNextLowerLevelItem" entry. The example below (from the GetLatestRevision.doc document in the Extensibility Pack) demonstrates a similar modification for Master Spec relationships.


                      [ Of course, always back up the DB if you are making these types of changes]

                      The out-of-the-box Get Latest Revision functionality uses the IsApproved workflow tag (behaviorID = 4). Clients wishing to change that to use other workflows tags can do so by:

                      • Modify the FactoryURL column in the orobjectassociationmetainfo table, and reset IIS.
                        For example, modify:


                      • Class:Xeno.Prodika.GSMLib.CoreExtensions.AssociateLatestBaseSpecFactory,GSMLib$1200,1201

                      (1200,1201 are examples of other workflow tag behaviorIDs - you would need to put in your own values here)


                      • Modify the SpecRetrieverFactoryURL values in the RemotingContainer.exe.config and restart the RemotingContainer. For example:
                        <SpecRevisionProcessor name="ExplicitMasterSpecs">

                      <envvar name="SpecRetrieverFactoryURL" value="Class:Xeno.Prodika.GSMLib.CustomAssociations.Service.Retrievers.LatestIssueByTagsCommonSpecRetrieverFactory,GSMLib$ExplicitMasterSpec|fkMasterSpec|SpecID|4" />



                                <SpecRevisionProcessor name="ExplicitMasterSpecs">

                        <envvar name="SpecRetrieverFactoryURL" value="Class:Xeno.Prodika.GSMLib.CustomAssociations.Service.Retrievers.LatestIssueByTagsCommonSpecRetrieverFactory,GSMLib$ExplicitMasterSpec|fkMasterSpec|SpecID|1200,1201" />

                      If you want to find the right entry in the orobjectassociationmetainfo table, you can run the following SQL query:


                      class.classname, prop.propertyname , info.factoryURL, * 
                      FROM orobjectassociationmetainfo info
                      inner join orobjectpropertymetainfo prop on info.fkorobjectpropertymetainfo = prop.pkid
                      inner join orclassmetainfo class on class.pkid = prop.fkORClassMetaInfo


                      With the above query, you can see that the TradeParentChild relationship is set up in the orobjectassociationmetainfo table with a pkid of '1177368f5e69-37ed-4fba-b0e9-ab64b4c89a07'. The entry in the RemotingContainer config you would modify would be "TradeNextLowerLevelItem", although you can do this by copying the entry and adding it into the CustomerSettings.config file in the CustomerSettings/GSM/SpecRevisionUpdateProcessor/SpecRevisionProcessors node, and make your changes there.


                      If you need help determining the right data to modify, let us know exactly which relationship you are trying to modify.

                      • 8. Re: Is Approved Tag in workflow

                        Hi Ron,


                        Yeah that is Trade Spec Scenario. when i issued spec1 which is having Parent Items (calculated)under related specs tab, the spec2 which got created from spec1 will not have those parent items(calculated) values at Draft status. When I moved to Approved then again Parent Item values under spec1 got appeared into spec2. I want to know how it is happening at approved status. Is there any way to bring that relationship at draft or Input review status.


                        Please suggest.




                        • 9. Re: Is Approved Tag in workflow
                          Ron M-Oracle

                          OK - thanks for verifying. So this functionality can be modified to make this work in other status. As I described above, you can change it to include other/different statuses. Please review my comments and the GetLatestRevision documentation.