Error while updating PlantWhse in EngWorkBench BPM

All, I found an old thread speaking about this issue, but has it been resolved in 10.2.200? I’m trying to update the PlantWhse table within the EngWorkBench.CheckIn method and getting the “The partner transaction manager has disabled its support for remote/network transactions” error. My source code in the BPM is below:
Erp.Tables.ECORev ECORev;
Erp.Tables.ECOOpr ECOOpr;
Erp.Tables.PlantWhse PlantWhse;

    string DebugMsg = string.Empty;
    string PrimBin = string.Empty;

    DebugMsg = "In Checkin BPM..";
    this.PublishInfoMessage(DebugMsg, Ice.Common.BusinessObjectMessageType.Information, Ice.Bpm.InfoMessageDisplayMode.Individual, "", "");

    foreach (var ECORev_iterator in (from ECORev_Row in Db.ECORev
                                     where ECORev_Row.Company == Session.CompanyID
                                        && ECORev_Row.GroupID == ipGroupID
                                        && ECORev_Row.PartNum == ipPartNum
                                     select ECORev_Row))
    {
        ECORev = ECORev_iterator;

        DebugMsg = $@"Part: {ECORev.PartNum} Rev: {ECORev.RevisionNum} CheckedOut: {ECORev.CheckedOut} Final Op: {ECORev.FinalOpr} Auto Rec: {ECORev.AutoRecOpr}";
        this.PublishInfoMessage(DebugMsg, Ice.Common.BusinessObjectMessageType.Information, Ice.Bpm.InfoMessageDisplayMode.Individual, "", "");

        if (ECORev.FinalOpr != 0 &&
            ECORev.FinalOpr == ECORev.AutoRecOpr)
        {
            ECOOpr = (from ECOOpr_Row in Db.ECOOpr
                      where string.Compare(ECOOpr_Row.Company, ECORev.Company, true) == 0
                         && string.Compare(ECOOpr_Row.GroupID, ECORev.GroupID, true) == 0
                         && string.Compare(ECOOpr_Row.PartNum, ECORev.PartNum, true) == 0
                         && string.Compare(ECOOpr_Row.RevisionNum, ECORev.RevisionNum, true) == 0
                         && string.Compare(ECOOpr_Row.AltMethod, ECORev.AltMethod, true) == 0
                         && ECOOpr_Row.OprSeq == ECORev.FinalOpr
                      select ECOOpr_Row).FirstOrDefault();

            DebugMsg = $@"Part: {ECOOpr.PartNum} Op Code: {ECOOpr.OpCode} Op Desc: {ECOOpr.OpDesc}";
            this.PublishInfoMessage(DebugMsg, Ice.Common.BusinessObjectMessageType.Information, Ice.Bpm.InfoMessageDisplayMode.Individual, "", "");

            PrimBin = "";

            if (ECOOpr != null)
            {
                if (ECOOpr.OpDesc.StartsWith("P100", StringComparison.OrdinalIgnoreCase))
                {
                    PrimBin = "PAINT";
                }
                else if (ECOOpr.OpDesc.StartsWith("TK1", StringComparison.OrdinalIgnoreCase) ||
                         ECOOpr.OpDesc.StartsWith("TK2", StringComparison.OrdinalIgnoreCase) ||
                         ECOOpr.OpDesc.StartsWith("TK3", StringComparison.OrdinalIgnoreCase) ||
                         ECOOpr.OpDesc.StartsWith("TK7", StringComparison.OrdinalIgnoreCase))
                {
                    PrimBin = "FAB";
                }
                else if (ECOOpr.OpDesc.StartsWith("TK4", StringComparison.OrdinalIgnoreCase))
                {
                    PrimBin = "TRACK4";
                }
                else if (string.Compare(ECOOpr.OpCode, "ASEM5", true) == 0)
                {
                    PrimBin = "SMT";
                }

                DebugMsg = $@"Prim Bin: {PrimBin}";
                this.PublishInfoMessage(DebugMsg, Ice.Common.BusinessObjectMessageType.Information, Ice.Bpm.InfoMessageDisplayMode.Individual, "", "");

                if (!String.IsNullOrEmpty(PrimBin))
                {
                    using (System.Transactions.TransactionScope txScope = IceDataContext.CreateDefaultTransactionScope())//start the transaction
                    {
                        PlantWhse = (from PlantWhse_Row in Db.PlantWhse.With(LockHint.UpdLock)
                                     where PlantWhse_Row.Company == Session.CompanyID
                                        && string.Compare(PlantWhse_Row.PartNum, ECORev.PartNum, true) == 0
                                     select PlantWhse_Row).FirstOrDefault();

                        if (PlantWhse != null &&
                            string.Compare(PlantWhse.PrimBin, PrimBin, true) != 0 &&
                            !PlantWhse.PrimBin.StartsWith("FAB-TK", StringComparison.OrdinalIgnoreCase) &&
                            string.Compare(PlantWhse.PrimBin, "GAZINTA", true) != 0)
                        {
                            PlantWhse.PrimBin = PrimBin;

                            Db.Validate();//commit the transaction
                        } /* if (PlantWhse != null */

                        txScope.Complete();
                    } /* txScope */
                } /* if (!String.IsNullOrEmpty(PrimBin)) */
            }  /* if (ECOOpr != null) */
        } /* if (ECORev.FinalOpr != 0 */
    } /* foreach */

All, never mind about the error. I changed the transaction scope to the top of the BPM code, and it works now! I greatly appreciate all of the contributors here, hope I didn’t take too much of your time on this.

1 Like