<?xml version="1.0" encoding="utf-16"?><customize><COR_CUSTOM_FIELD U_RuleName="DOC_10149: Delete draft after adding a document" U_Type="0" U_Action="0" U_Warning=" " U_WarningText="" U_WarningBox=" " U_WarningStatus=" " U_Active="Y" U_FormTypeBasis="" U_ItemUIDBasis="" U_ColumnBasis="" U_FormType="60091,60090,133,179,140,180,139,149,60092,141,181,143,182,142,540000988,721,720" U_ItemUID="" U_Column="" U_EventType="33" U_Before="N" U_Mode="-1" U_Refresh=" " U_EasyFunctionRule="" U_Creator="" U_LastModified="18.07.2012 13:33:44" U_LastModifiedBy="1" U_Permission="" U_ErrorBox=" " U_ErrorStatus=" "><U_Expression>/****** General Information *****Creator: coresystems USA, William Burgos, william.burgos@coresystem.chCreate Date: 2012-06-06 ***** StartConfDesc *****On a marketing document add process, if document is generated by a draft document then give the option to delete draft***** EndConfDesc ***** ***** Updates *****2012-06-06, William Burgos: Initial Rule2012-07-18, Friederike Mundt: Use pVal.RuleInfo.RuleName to get the rule name */string ruleName = pVal.RuleInfo.RuleName;string errorMessage = "Error in Optimizer Rule '" + ruleName + "'";string QUERY = "";try{   	string DOCENTRY = pVal.BusinessObjectKeyString;	switch (pVal.Form.Type)	{		case "133":		case "60090":		case "60091":		{			QUERY = @"SELECT TOP 1 T0.[draftKey] FROM OINV T0 WHERE T0.[DocEntry] = " + DOCENTRY;			break;		}		case "179":		{			QUERY = @"SELECT TOP 1 T0.[draftKey] FROM ORIN T0 WHERE T0.[DocEntry] = " + DOCENTRY;			break;		}		case "140":		{			QUERY = @"SELECT TOP 1 T0.[draftKey] FROM ODLN T0 WHERE T0.[DocEntry] = " + DOCENTRY;			break;		}		case "180":		{			QUERY = @"SELECT TOP 1 T0.[draftKey] FROM ORDN T0 WHERE T0.[DocEntry] = " + DOCENTRY;			break;		}		case "139":		{			QUERY = @"SELECT TOP 1 T0.[draftKey] FROM ORDR T0 WHERE T0.[DocEntry] = " + DOCENTRY;			break;		}		case "149":		{			QUERY = @"SELECT TOP 1 T0.[draftKey] FROM OQUT T0 WHERE T0.[DocEntry] = " + DOCENTRY;			break;		}		case "141":		case "60092":		{			QUERY = @"SELECT TOP 1 T0.[draftKey] FROM OPCH T0 WHERE T0.[DocEntry] = " + DOCENTRY;			break;		}		case "181":		{			QUERY = @"SELECT TOP 1 T0.[draftKey] FROM ORPC T0 WHERE T0.[DocEntry] = " + DOCENTRY;			break;		}		case "143":		{			QUERY = @"SELECT TOP 1 T0.[draftKey] FROM OPDN T0 WHERE T0.[DocEntry] = " + DOCENTRY;			break;		}		case "182":		{			QUERY = @"SELECT TOP 1 T0.[draftKey] FROM ORPD T0 WHERE T0.[DocEntry] = " + DOCENTRY;			break;		}		case "142":		{			QUERY = @"SELECT TOP 1 T0.[draftKey] FROM OPOR T0 WHERE T0.[DocEntry] = " + DOCENTRY;			break;		}		case "540000988":		{			QUERY = @"SELECT TOP 1 T0.[draftKey] FROM OPQT T0 WHERE T0.[DocEntry] = " + DOCENTRY;			break;		}		case "721":		{			QUERY = @"SELECT TOP 1 T0.[draftKey] FROM OIGN T0 WHERE T0.[DocEntry] = " + DOCENTRY;			break;		}		case "720":		{			QUERY = @"SELECT TOP 1 T0.[draftKey] FROM OIGE T0 WHERE T0.[DocEntry] = " + DOCENTRY;			break;		}		default:			return true;	}		using(System.Data.SqlClient.SqlDataReader rdr = customize.B1Connector.GetB1Connector().ExecuteQuery(QUERY))	{		if (rdr.HasRows)		{				rdr.Read();			if (!(Convert.IsDBNull(rdr["draftKEY"])))			{				int DRAFTKEY = Convert.ToInt32(rdr["draftKey"]);				if (MessageBox.Show("Do you want to delete the Draft ?", "Yes", "No", MessageBox.Buttons.Button2) == MessageBox.Buttons.Button1)				{					SAPbobsCOM.Documents pDraft = (SAPbobsCOM.Documents) SwissAddonFramework.B1Connector.GetB1Connector().Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oDrafts);					pDraft.GetByKey(DRAFTKEY);					pDraft.Remove();					StatusBar.WriteSucess("Draft Document has been deleted.");				}			}		}	}}catch (Exception ex){	MessageBox.Show(errorMessage + ": \n" + ex.Message, "OK");	StatusBar.WriteError(errorMessage + ": " + ex.Message);	Debug.WriteMessage(errorMessage + ": " + ex.Message, Debug.DebugLevel.Exception);}GC.Collect();return true;</U_Expression></COR_CUSTOM_FIELD></customize>