Updating Configured Part using a BPM/ABL code

In case this might be of use to someone later,
with the help of a colleague, I found the reason
for the type mismatch is that the parameter order
from a BPM/ABL for Configuration.GetConfigurationSequence
is different from what the XML file says (I also had to
add OUTPUT for the last parameter). The order actually is:

Order Direction Name Type
1 INPUT ConfigMode CHARACTER
2 INPUT RelatedToFile CHARACTER
3 INPUT RelatedType CHARACTER
4 INPUT LinkKey1 CHARACTER
5 INPUT LinkKey2 CHARACTER
6 INPUT LinkKey3 CHARACTER
7 INPUT LinkKey4 CHARACTER
8 INPUT LinkKey5 CHARACTER
9 INPUT PartNum CHARACTER
10 INPUT RevisionNum CHARACTER
11 OUTPUT ConfigurationSequenceDataSet DATASET
12 OUTPUT nonApprvMessage CHARACTER

I got the proper signature through the "Advanced" button
in the Method Directive window for Configuration.

Somehow I thought the XML file made more sense but I was wrong.

Have a nice day,

Yves
Hello,

We have a need to update a configured part inside a Quote/Order using a BPM calling a .p script.
To that effect, I have been following the excellent post by Jim Kinneman
(http://tech.groups.yahoo.com/group/vantage/message/100020)

So I went through the steps:
- GetConfigurationSequence
- GetGeneratedConfiguration
- GetOrderValues
- SaveOrderConfiguration

I have been able to extract the values from the configured part, but I get
a "Mismatch Parameter" error when trying to save.
A maybe-related strange thing is that I get no record from calling GetConfigurationSequence
(that might be the faulty parameter). Since our configurator is single-level that was not
a problem as I just put a zero when necessary, but that trick doesn't work with SaveOrderConfiguration.

Also, the version is Epicor 9.05.607B which uses different signatures than in the version used
in Mr. Kinneman post (and different from Vantage 8.03).
Epicor sure likes to change the Configuration method parameters.
I used the Epicor.Mfg.BO.Configuration.XML file to find the right parameters.

Any help would be greatly appreciated.

Thanks,

Yves
After further investigation, I found I had left a "NO-ERROR" clause
in the call for GetConfigurationSequence.

The error I now get is:
(Procedure: 'GetConfigurationSequence bo\Configuration\Configuration.p' Line:0) Mismatched parameter types passed to procedure GetConfigurationSequence bo\Configuration\Configuration.p. (3230)

The code used is (hConfig is the Handle to the Configuration object):
RUN GetConfigurationSequence IN hConfig ("ORDER", cPartNum, cRevisionNum, "OrderDtl", "CFG",
STRING(iOrderNum), STRING(iOrderLine), "", "", "",
{&output_dataset_ConfigurationSequenceDataSet}, "").

The entry in Epicor.Mfg.BO.Configuration.XML is:
<member name="M:Epicor.Mfg.Proxy.ConfigurationImpl.GetConfigurationSequence(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String@)">
<summary>
</summary>
<param name="configMode">Configuration Mode</param>
<param name="partNum">The main part being configured</param>
<param name="revisionNum">The main revision being configured</param>
<param name="relatedToFile">Related To File</param>
<param name="relatedType">Related Type</param>
<param name="linkKey1">Source Key1 value</param>
<param name="linkKey2">Source Key1 value</param>
<param name="linkKey3">Source Key1 value</param>
<param name="linkKey4">Source Key1 value</param>
<param name="linkKey5">Source Key1 value</param>
<returns type="Epicor.Mfg.BO.ConfigurationSequenceDataSet"></returns>
<param name="nonApprvMessage">Message with non approved part revisions</param>
</member>

I suspect the issue is with the System.String@ final parameter
but I don't see what change I could make.

Thank you for any advice or suggestion.

Yves