Method Directive BPM - ReceiptsFromMfg - Clash on Tablesets

,

‘ReceiptsFromMfgSvcCustomization.GetSelectSerialNumbersParams(ref ReceiptsFromMfgTableset, string)’ cannot implement ‘ReceiptsFromMfgSvcContract.GetSelectSerialNumbersParams(ref ReceiptsFromMfgTableset, string)’ because it does not have the matching return type of ‘SelectSerialNumbersParamsTableset’.

I’m trying to call the InventoryQtyAdj adapter from within a BPM, to be able to adjust qty on a part. It won’t save, and it fails on the above error.

It’s not happy that the 2 different adapters have different versions of the SerialNumbers table.

Full Error Message

There is at least one compilation error.
ReceiveMfgPartToInventory.CommonTypes.cs(100,33): error CS0433: The type ‘LegalNumGenOptsTable’ exists in both ‘Erp.Contracts.BO.InventoryQtyAdj, Version=10.2.300.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992’ and ‘Erp.Contracts.BO.ReceiptsFromMfg, Version=10.2.300.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992’
ReceiveMfgPartToInventory.CommonTypes.cs(115,33): error CS0433: The type ‘SelectedSerialNumbersTable’ exists in both ‘Erp.Contracts.BO.InventoryQtyAdj, Version=10.2.300.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992’ and ‘Erp.Contracts.BO.ReceiptsFromMfg, Version=10.2.300.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992’
ReceiveMfgPartToInventory.CommonTypes.cs(120,33): error CS0433: The type ‘SNFormatTable’ exists in both ‘Erp.Contracts.BO.InventoryQtyAdj, Version=10.2.300.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992’ and ‘Erp.Contracts.BO.ReceiptsFromMfg, Version=10.2.300.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992’
CustomizationAdapter.cs(103,30): error CS0433: The type ‘SelectSerialNumbersParamsTableset’ exists in both ‘Erp.Contracts.BO.InventoryQtyAdj, Version=10.2.300.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992’ and ‘Erp.Contracts.BO.ReceiptsFromMfg, Version=10.2.300.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992’
CustomizationAdapter.cs(9,152): error CS0738: ‘ReceiptsFromMfgSvcCustomization’ does not implement interface member ‘ReceiptsFromMfgSvcContract.GetSelectSerialNumbersParams(ref ReceiptsFromMfgTableset, string)’. ‘ReceiptsFromMfgSvcCustomization.GetSelectSerialNumbersParams(ref ReceiptsFromMfgTableset, string)’ cannot implement ‘ReceiptsFromMfgSvcContract.GetSelectSerialNumbersParams(ref ReceiptsFromMfgTableset, string)’ because it does not have the matching return type of ‘SelectSerialNumbersParamsTableset’.

The only way I was ever to work around that issue is by using an Updatable BAQ and doing the logic in the UBAQ BPM and calling the UBAQ from the BPM. Could probably now use Functions.

Sometimes you can move it to Data Directive.

1 Like

Doesn’t work using functions as it seems to compile into the same object as the original method.

We create a UD13 table and pass all the parameters needed through in the UD13 fields. Then in a Pre Processor of UD13.Update do whatever we need to do, as well as removing the ttUD13 record so we don’t actually create UD13. We used this before functions were available so we could have the same code when we needed to create the same sort of record from multiple spots.

We had the same issue when trying to do manufacturing receipts from time and expense entry. We used a UD table to store all the data that was needed to pass to the ReceiptsFromMfgDataSet and then did a post processing BPM on the UD table. It has been working without any issue for more than 2 years now.

I think @JoseGomez had suggested this option at time.

Vinay Kamboj

We had the same issue when trying to do manufacturing receipts from time and expense entry. We used a UD table to store all the data that was needed to pass to the ReceiptsFromMfgDataSet and then did a post processing BPM on the UD table. It has been working without any issue for more than 2 years now.

Vinay Kamboj

wait… @josecgomez suggested you consume an entire UD Table when he himself told me to use a UBAQ and not be a stupid cactus consuming my UD Table :smiley:

I guard my UD Tables like my life… none is wasted, ever! UBAQs all the way baby! :slight_smile:

1 Like

I’m going to mark @Vinaykamboj solution as the answer, because that’s the route I went and it worked. Thanks also to @josecgomez as Vinay credits him with the original answer :slight_smile:

1 Like

Seeing similar issue on 10.2.700 on Erp.BO.CustShip.GetQtyInfo. :expressionless:

This is still present in 2021.2.11 :pensive:

I’m trying to create a BPM that sets three fields on OrderHed when ReadyToInvice is checked in Customer shipment Entry. Getting the same error as this.

Is it possible to do a UBAQ and have the three fields set in orderhed in a BPM?

As soon as you click ReadyToInvoice the order will be closed. I do not think it will allow any updates to it after that.