DocumentSpecNames? - biztalk

I have been searching for over an hour and I give up. On the XML disassembler component, there is a DocumentSpecNames property. I can find no helpful documentation about what to put there. Is it like target namespace? What is it? An example would be helpful to.

DocumentSpecNames are used to validate messages against a specific schema (SchemaList). This is useful if you want to ensure strict messaging acceptance prior to processing a given message in your pipeline. See related blog post.
The property value should be the name of the assembly and class name (from above link).
DBLOG.ValidateMessage.IntegerSchema, DBLOG.ValidateMessage, Version=1.0.0.0, Culture=neutral, PublicKeyToken=349a4171d9432c58

Document namespace is a combination of "name", "assembly"
Step-1.
To find this you need to go to BizTalk Admin console then navigate to the application where you have deployed your schema Dll.
Step-2. Double click on the schema for which you want the Document Spec Name; you will find "General" tab on the left hand side of the window.
Step-3. On this General tab, "Name", "Assembly" and "Type" would be defined, now to get the Document Spec Name- Copy the "Name" and paste it to a notepad followed by a comma and a space.
Ex. Name- "Microsoft.EAI.SAP.Schema.PurchaseOrder"
Assembly- "Microsoft.EAI.SAP.Schema, Version=1.0.0.0, Culture=neutral, PublicKeyToken=078b35dbd180a45k"
So as i defined above, Document Spec Name will be-
Document Name- "Microsoft.EAI.SAP.Schema.PurchaseOrder, Microsoft.EAI.SAP.Schema, Version=1.0.0.0, Culture=neutral, PublicKeyToken=078b35dbd180a45k"
Hope this will clear your doubt :)
Regards
Mayank

Related

For a xamarin.iOS app, how to identify assembly that a symbol comes from

When I build an archive for my Xamarin Forms iOS app, the linker is eliminating some required symbols for Firebase. A build work fine. I know that is can use --linkskip to keep an assembly but how do you identify which assembly needs to be specified to preserve the symbol.
This is helpful if using [Preserve] on some assemblies is impossible (e.g. 3rd party code) or as a temporary workaround for a bug.
You can have a look at Skipping Assemblies , when which assembly is not used or occurs a bug with which assembly , you can identify it .
I found the Object Browser extremely helpful for that purpose. If you set the browse scope to "My Solution" it'll show you all classes that are defined in and referenced from your current solution. From thereon you can search for the classes that are missing during runtime (searching may take some seconds, depending on your solutions size). Select the respective class and delete the search text. The selected class remains selected and you can see the container (i.e. assembly) the class is defined in and add it to linkskip.
On a side note: When your project grows there may be many exceptions for the linker to add. While it may be possible to add all of these with linkskip, a linker XML definition may be more feasible. To use this, add an XML file with the build target LinkDescription. Within that file add the assemblies and types to preserve
<linker>
<assembly fullname="Firebase.XXX">
<type fullname="*" /> <-- Preserve everything from that assembly -->
</assembly>
</linker>

Why is object in AOT marked with red cross?

I have to extend report's query to add a new field.
I've created extension of a query, joined required datasources and can see new field in the list of fields.
For some reason the report in the AOT is displaying with red cross sign:
In properties i can see error in metadata: "There was an error reading metadata. Make sure the metadata xml file(s) are accessible, are well formed and are not corrupted with duplicate or missing xml elements.
The exception message is: Element named: 'Copy1' of type 'ModelElement' already exists among elements: 'Copy1'.
Parameter name: item
Additional information:
AOT/Reports/Reports/WHSInvent"
There is an .xml of that object in packages local directory, there are no any duplicate names in any node of that report.
Any ideas how it can be fixed?
I've run into this before and there are a two things that come to mind.
Often times it's due to an incorrect merge where changes are merged and metadata is accidentally duplicated (in your case it's possible there are two xml nodes with the same name/id in the .rdl file)
If this report is checked in with corrupt metadata, you need to manually modify the RDL file, which is not great, but hopefully the error contains enough hints. Open the report rdl file in your favourite editor (report likely located in a similar path as this: K:\AosService\PackagesLocalDirectory\YOURMODEL\Reports) and look for an xml node with an attribute Name="Copy1". With luck, you have two duplicate nodes next to each other due to the merge. Remove the offending duplicate node, save, and refresh the AOT in Visual Studio.
If the error is in your local changes only (xml file is corrupted for whatever reason) and you are sure that your source control contains the correct version and you simply wish to overwrite the local contents with the source controlled version, follow these steps. Note: this will overwrite local changes.
First, undo pending changes.
Then force a get latest:

How can I search and replace wsdlLocation value of reference property in a soa config file

I am trying to replace the ui:wsdlLocation value of the reference property in the composite.xml by using the config file.
This is the snippet from composite.xml:
<reference name="xyz"
ui:wsdlLocation="http://www.example1.com/xyz/xyz.wsdl">
<interface.wsdl interface="http://xmlns.oracle.com/MIME_jws/xyz/xyz#wsdl.interface(xyz)"/>
</reference>
I tried replacing the value in reference section of the config file as follows:
<reference name="xyz">
<searchReplace>
<search>www.example1.com</search>
<replace>www.example2.com</replace>
</searchReplace>
</reference>
But when I am trying the validate config plan option, it says
Cannot use this deployment plan file. Schema validation error in File = .... at Line = 67 Column = 24:Element 'searchReplace' not expected.
Can anyone please tell me the right way to do this?
I suggest you use a deployment plan.xml to replace any end point server or URLs from composite. The replace activity used in deployment plan can override the design time URL and hence can point to a correct one.
Hope this helps.
Thanks,
M S

Remove custom type in Alfresco

In Alfresco, if a type name is removed/changed all nodes of that type will disappears but still exists.
Using alfresco 5.0.c I've added some custom types:
eg:
<type name="my:test">
<title>Test folder</title>
<parent>cm:folder</parent>
</type>
now i deploy it and create a folder of this type (a simple folder, then change type)
Now i edit the type like this:
<type name="my:test2"> <!-- from my:test to my:test2 -->
<title>Test folder</title>
<parent>cm:folder</parent>
</type>
Deploying this: any "my:test" folder will disappear, but, if I try to create another folder with the same name I get an error becouse the node still exists.
These nodes will not be not even listed within the folder child:
print(document.getChildren());
How can I recover (if possible using the the javascript console) all the "broken" nodes and be able to change the type?
A little preface: as widely stated by Alfresco, if you want to change your custom content model you should change it only incrementally.
This means that you can't remove any properties, types or aspect at definition level of the model, you only can add new definitions in the content model of Alfresco.
So it is a very bad practice to change types "on the fly".
A good practice is to always start with a model as small as you can and then add features as long as you need them.
In your case you should have deleted all nodes referencing my:test type BEFORE changing the model and then safely remove it and finally you should have performed a full reindex. This could be the reason why the repository tells you that the folder exists even if you cannot see it anymore.
As far as I know it is not possible to delete this inconsistent nodes through the console, so my advice is to perform a full reindex. If the issues come up again then you should consider to start again from scratch.
Another approach next time is to add the new type and programmatically hide the older one.

Saving Configuration Section Error - Elements are merged as attributes

I have created a configuration section designer project to represent nodes of a custom section necessary to read and save from my web application. I am able to successfully create instances of the configuration elements and collections, however when I save the configuration using the referenced System.Configuration.Configuration object and issuing save, the elements get merged into their parents as attributes. An example of the issue is outlined below:
After calling the referenced Configuration.save, the output is as follows:
<savedReports xmlns="SavedReportSchema.xsd">
<resultsSets dataViewId="1" id="4203bb88-b0c4-4d57-8708-18e48f0a1d2d">
<selects keyId="1" sortOrder="1" />
</resultsSets>
</savedReports>
As defined in my configuration section designer project (confirmed by the resulting xsd as well) the output should match the following:
<savedReports xmlns="SavedReportSchema.xsd">
<resultsSets>
<savedReport id="1">
<selects>
<select keyId="1" sortOrder="1"/>
</selects>
</savedReport>
</resultsSets>
</savedReports>
Any ideas? The element collection types are set to BasicMapAlternate however when I set them to AddRemoveClearMapAlternate they are not merged but they are prefixed by "add" rather than "select" or "savedReport" causing the validation to be off.
Turns out AddRemoveClearMapAlternate was the option I needed to correct my problem referenced in the question.

Resources