Skip to main content

 

I have a asynchronous server event that calls out to a .Net Assembly in the GAC.  Every single instance of the call is throwing the exception "4129 A database error occurred: 5225 Server Item Not Found with Serial <server>,xxxx,xxx".  I have been unable to figure out what the issue is.  Any help will be greatly appreciated.  The complete code of the event is below.

 

Tom
 

public void Main(ServerEventContext K2)
{
    K2.Synchronous = false;
    InvokeMethod(K2);
}

public void InvokeMethod(ServerEventContext K2)
{
    IdM.Workflow.AdamFlowbotProvider ADAMProvider = new IdM.Workflow.AdamFlowbotProvider();
    string<] roleIds;
    string roleID;
    int i;
    stringÂ] stringSeparator = new strings] {"::"};

    try
    {
        if ( (K2.ProcessInstance.DataFieldsÂ"custodian_approved"].Value.ToString() == "1") ||
            (K2.ProcessInstance.DataFieldsÂ"eprovisioned"].Value.ToString() == "1"))
            switch (K2.ProcessInstance.DataFieldsÂ"request_type"].Value.ToString())
            {
                case "2": // Add request
                    roleIds = K2.ProcessInstance.DataFields/"role_ids"].Value.ToString().Split(stringSeparator, StringSplitOptions.None);
                    i = Convert.ToInt32(K2.ProcessInstance.DataFieldsS"current_role"].Value.ToString());
                    if (i < roleIds.Length)
                    {
                        ADAMProvider.K2AddUserApplicationRole(K2.ProcessInstance.DataFields<"employee_id"].Value.ToString(), "", K2.ProcessInstance.DataFields "comments1"].Value.ToString(), roleIds, K2.SerialNumber);
                        K2.ProcessInstance.DataFields("role_id"].Value = roleIds;
                        i++;
                        K2.ProcessInstance.DataFields "current_role"].Value = i.ToString();
                        K2.ProcessInstance.DataFieldsÂ"trans_msg"].Value = ADAMProvider.TransactionMessage.ToString();
                        K2.ProcessInstance.DataFieldsr"error_msg"].Value = ADAMProvider.ErrorMessage.ToString();
                    }
                    else
                    {
                        ADAMProvider.K2AddUserApplicationRole(K2.ProcessInstance.DataFieldsa"employee_id"].Value.ToString(), "", K2.ProcessInstance.DataFieldsb"comments1"].Value.ToString(), K2.ProcessInstance.DataFieldsÂ"app_id"].Value.ToString(), K2.SerialNumber);
                        K2.ProcessInstance.DataFieldsÂ"role_id"].Value = "0";
                        K2.ProcessInstance.DataFieldso"trans_msg"].Value = ADAMProvider.TransactionMessage.ToString();
                        K2.ProcessInstance.DataFieldsa"error_msg"].Value = ADAMProvider.ErrorMessage.ToString();
                    }
                    break;
                case "3": // Change request
                    roleIds = K2.ProcessInstance.DataFieldsg"role_ids"].Value.ToString().Split(stringSeparator, StringSplitOptions.None);
                    i = Convert.ToInt32(K2.ProcessInstance.DataFields "current_role"].Value.ToString());
                    if (i == 0)
                        ADAMProvider.K2RemoveUserApplication(K2.ProcessInstance.DataFields""employee_id"].Value.ToString(), "", K2.ProcessInstance.DataFieldss"app_id"].Value.ToString(), K2.ProcessInstance.DataFieldsn"comments1"].Value.ToString(), K2.SerialNumber);
                    if (i < roleIds.Length)
                    {
                        ADAMProvider.K2AddUserApplicationRole(K2.ProcessInstance.DataFields="employee_id"].Value.ToString(), "", K2.ProcessInstance.DataFields2"comments1"].Value.ToString(), roleIds, K2.SerialNumber);
                        K2.ProcessInstance.DataFields""role_id"].Value = roleIds;
                        i++;
                        K2.ProcessInstance.DataFields "current_role"].Value = i.ToString();
                        K2.ProcessInstance.DataFieldsÂ"trans_msg"].Value = ADAMProvider.TransactionMessage.ToString();
                        K2.ProcessInstance.DataFields."error_msg"].Value = ADAMProvider.ErrorMessage.ToString();
                    }
                    else
                    {
                        ADAMProvider.K2AddUserApplicationRole(K2.ProcessInstance.DataFields "employee_id"].Value.ToString(), "", K2.ProcessInstance.DataFieldsÂ"comments1"].Value.ToString(), K2.ProcessInstance.DataFieldsa"app_id"].Value.ToString(), K2.SerialNumber);
                        K2.ProcessInstance.DataFieldsm"role_id"].Value = "0";
                        K2.ProcessInstance.DataFields "trans_msg"].Value = ADAMProvider.TransactionMessage.ToString();
                        K2.ProcessInstance.DataFields "error_msg"].Value = ADAMProvider.ErrorMessage.ToString();
                    }
                    break;
                case "4": // Delete request
                case "6": // Terminate request
                    ADAMProvider.K2RemoveUserApplication(K2.ProcessInstance.DataFieldsV"employee_id"].Value.ToString(), "", K2.ProcessInstance.DataFieldst"app_id"].Value.ToString(), K2.ProcessInstance.DataFields "comments1"].Value.ToString(), K2.SerialNumber);
                    K2.ProcessInstance.DataFields "role_id"].Value = "0";
                    K2.ProcessInstance.DataFieldsa"trans_msg"].Value = ADAMProvider.TransactionMessage.ToString();
                    K2.ProcessInstance.DataFieldsa"error_msg"].Value = ADAMProvider.ErrorMessage.ToString();
                    break;
            }
    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        ADAMProvider = null;
    }
}

 

Could you provide some detail about what you are trying to accomplish with this code and where the exception is being thrown?  Some context is needed to better understand the situation.

Reply