static void Main(string[] args) { BAPISDLS LOGIC_SWITCH = new BAPISDLS(); //Build object and value to Object BAPISDHD1 ORDER_HEADER_IN = new BAPISDHD1(); ORDER_HEADER_IN.DOC_TYPE = ""; ORDER_HEADER_IN.SALES_ORG = ""; ORDER_HEADER_IN.DISTR_CHAN = ""; ORDER_HEADER_IN.DIVISION = ""; ORDER_HEADER_IN.REF_DOC_L = ""; //--------------------------------------------------------- //Build object and value to Object BAPISDHD1X ORDER_HEADER_INX = new BAPISDHD1X(); ORDER_HEADER_INX.DOC_TYPE = ""; ORDER_HEADER_INX.SALES_ORG = ""; ORDER_HEADER_INX.DISTR_CHAN = ""; ORDER_HEADER_INX.DIVISION = ""; ORDER_HEADER_INX.REF_DOC_L = ""; //--------------------------------------------------------- BAPI_SENDER SENDER = new BAPI_SENDER(); BAPIPAREX[] EXTENSIONIN = new BAPIPAREX[1]; BAPICCARD[] ORDER_CCARD = new BAPICCARD[1]; BAPICUBLB[] ORDER_CFGS_BLOB = new BAPICUBLB[1]; BAPICUINS[] ORDER_CFGS_INST = new BAPICUINS[1]; BAPICUPRT[] ORDER_CFGS_PART_OF = new BAPICUPRT[1]; BAPICUCFG[] ORDER_CFGS_REF = new BAPICUCFG[1]; BAPICUREF[] ORDER_CFGS_REFINST = new BAPICUREF[1]; BAPICUVAL[] ORDER_CFGS_VALUE = new BAPICUVAL[1]; BAPICUVK[] ORDER_CFGS_VK = new BAPICUVK[1]; BAPICOND[] ORDER_CONDITIONS_IN = new BAPICOND[1]; BAPICONDX[] ORDER_CONDITIONS_INX = new BAPICONDX[1]; //Build object and value to [] BAPISDITM[] ORDER_ITEMS_IN = new BAPISDITM[1]; BAPISDITM item = new BAPISDITM(); item.ITM_NUMBER = ""; item.MATERIAL = ""; item.TARGET_QTY = 5; ORDER_ITEMS_IN.SetValue(item, 0); //--------------------------------------------------------- //Build object and value to [] BAPISDITMX[] ORDER_ITEMS_INX = new BAPISDITMX[1]; BAPISDITMX itemx = new BAPISDITMX(); itemx.ITM_NUMBER = ""; itemx.MATERIAL = ""; itemx.TARGET_QTY = ""; ORDER_ITEMS_INX.SetValue(itemx, 0); //--------------------------------------------------------- BAPISDKEY[] ORDER_KEYS = new BAPISDKEY[1]; BAPIPARNR[] ORDER_PARTNERS = new BAPIPARNR[1]; //Build object and value to [] BAPIPARNR ordPartn = new BAPIPARNR(); ordPartn.PARTN_ROLE = ""; ordPartn.PARTN_NUMB = ""; ORDER_PARTNERS.SetValue(ordPartn, 0); //--------------------------------------------------------- //Build object and value to [] BAPISCHDL[] ORDER_SCHEDULES_IN = new BAPISCHDL[1]; BAPISCHDL OrdSchedIn = new BAPISCHDL(); OrdSchedIn.ITM_NUMBER = ""; OrdSchedIn.REQ_QTY = 4; ORDER_SCHEDULES_IN.SetValue(OrdSchedIn, 0); //--------------------------------------------------------- //Build object and value to [] BAPISCHDLX[] ORDER_SCHEDULES_INX = new BAPISCHDLX[1]; BAPISCHDLX OrdSchedInX = new BAPISCHDLX(); OrdSchedInX.ITM_NUMBER = ""; OrdSchedInX.REQ_QTY = ""; //--------------------------------------------------------- BAPISDTEXT[] ORDER_TEXT = new BAPISDTEXT[1]; BAPIADDR1[] PARTNERADDRESSES = new BAPIADDR1[1]; BAPIRET2[] RETURN = new BAPIRET2[1]; CreateSalesOrderServiceReference.SalesOrderCreateFromDat2_Outbound_AsyncClient client = new CreateSalesOrderServiceReference.SalesOrderCreateFromDat2_Outbound_AsyncClient(); client.SalesOrderCreateFromDat2_Outbound_AsyncAsync("adsf", "adf", "adsf", "asdf", LOGIC_SWITCH, ORDER_HEADER_IN, ORDER_HEADER_INX, "", SENDER, "", EXTENSIONIN, ORDER_CCARD, ORDER_CFGS_BLOB, ORDER_CFGS_INST, ORDER_CFGS_PART_OF, ORDER_CFGS_REF, ORDER_CFGS_REFINST, ORDER_CFGS_VALUE, ORDER_CFGS_VK, ORDER_CONDITIONS_IN, ORDER_CONDITIONS_INX, ORDER_ITEMS_IN, ORDER_ITEMS_INX, ORDER_KEYS, ORDER_PARTNERS, ORDER_SCHEDULES_IN, ORDER_SCHEDULES_INX, ORDER_TEXT, PARTNERADDRESSES, RETURN); }
/// <summary> /// Call to ZSDI3003_CONTRACT_CREATE. /// </summary> /// <param name="contract"></param> /// <returns></returns> private IEnumerable <Result> WebServiceInvocator(NormalContract contract) { List <Result> result = new List <Result>(); // Import tab in ZSDI3003_CONTRACT_CREATE. BAPISDHD1 contract_header_in = new BAPISDHD1(); BAPISDHD1X contract_header_inx = new BAPISDHD1X(); BAPISDLS logic_switch = new BAPISDLS(); // Tables tab in ZSDI3003_CONTRACT_CREATE. BAPICUBLB[] contract_cfgs_blob = new BAPICUBLB[1]; BAPICUINS[] contract_cfgs_inst = new BAPICUINS[1]; BAPICUPRT[] contract_cfgs_part_of = new BAPICUPRT[1]; BAPICUCFG[] contract_cfgs_ref = new BAPICUCFG[1]; BAPICUREF[] contract_cfgs_refinst = new BAPICUREF[1]; BAPICUVAL[] contract_cfgs_value = new BAPICUVAL[1]; BAPICUVK[] contract_cfgs_vk = new BAPICUVK[1]; BAPICONDX[] contract_conditions_inx = new BAPICONDX[1]; BAPICTR[] contract_data_in = new BAPICTR[1]; BAPICTRX[] contract_data_inx = new BAPICTRX[1]; BAPISDITMX[] contract_items_inx = new BAPISDITMX[1]; BAPISDKEY[] contract_keys = new BAPISDKEY[1]; BAPIPARNR[] contract_partners = new BAPIPARNR[2]; BAPIPAREX[] extensionin = null; BAPIADDR1[] partneraddresses = new BAPIADDR1[1]; BAPIRET2[] breturn = new BAPIRET2[1]; BAPISDTEXT[] contract_text = null; BAPICOND[] contract_conditions_in = null; BAPISDITM[] contract_items_in = new BAPISDITM[contract.NormalContractItems.Count]; //// HEADER ---------------------------------------------------------------------- contract_header_in.DOC_TYPE = contract.DocumentType.Id; contract_header_in.SALES_ORG = contract.SalesOrganization.Id; contract_header_in.DISTR_CHAN = contract.DistributionChannel.Id; contract_header_in.DIVISION = contract.SalesDivision.Id; contract_header_in.CT_VALID_F = contract.StartDate.Value.ToString("yyyy-MM-dd"); contract_header_in.CT_VALID_T = contract.EndDate.Value.ToString("yyyy-MM-dd"); contract_header_in.PURCH_NO_C = contract.PONumber.ToString(); contract_header_in.SALES_GRP = contract.SalesSupervisor.Code; contract_header_in.SALES_OFF = contract.SalesSupervisor.Superior.Code; //// ITEMS ---------------------------------------------------------------------- int itemsIndex = 0; foreach (NormalContractItem item in contract.NormalContractItems) { BAPISDITM bapisditm = new BAPISDITM(); bapisditm.ITM_NUMBER = string.Format("{0,6:000000}", item.Id); bapisditm.MATERIAL = item.Material.Id; bapisditm.TARGET_QTY = item.Quantity; bapisditm.TARGET_QTYSpecified = true; bapisditm.TARGET_QU = "MTN"; bapisditm.INCOTERMS1 = item.Incoterms.Id; bapisditm.INCOTERMS2 = item.Region.Name; contract_items_in[itemsIndex] = bapisditm; itemsIndex++; } // CUSTOMER ---------------------------------------------------------------------- /* * AG = SP - EMISSOR DA ORDEM * PY = RG - PAGADOR * SH = WE - RECEBEDOR * ZW = ZW - RECEBEDOR' * ZA = ZA - AGENTE DE VENDAS */ BAPIPARNR contract_partners_SoldTo = new BAPIPARNR(); contract_partners_SoldTo.PARTN_ROLE = "SP"; contract_partners_SoldTo.PARTN_NUMB = contract.Customer.Id; contract_partners[0] = contract_partners_SoldTo; //// SEND THE CONTRACT ---------------------------------------------------------------------- NetworkCredential lNetCredentials = new NetworkCredential(); lNetCredentials.UserName = ConfigurationManager.AppSettings["SI_CREATE_CONTRACT_OB_USER"]; lNetCredentials.Password = ConfigurationManager.AppSettings["SI_CREATE_CONTRACT_OB_PWD"]; SI_CREATE_CONTRACT_OB_BrazilMOService service = new SI_CREATE_CONTRACT_OB_BrazilMOService(); service.Credentials = lNetCredentials; service.Timeout = int.MaxValue; try { string res = service.SI_CREATE_CONTRACT_OB_BrazilMO( null, null, contract_header_in, contract_header_inx, "X", string.Empty, //IM_ZZREPCC (NU_CONTRATO_SUBSTITUI), "X", logic_switch, "", null, string.Empty, //TESTRUN ref contract_cfgs_blob, ref contract_cfgs_inst, ref contract_cfgs_part_of, ref contract_cfgs_ref, ref contract_cfgs_refinst, ref contract_cfgs_value, ref contract_cfgs_vk, ref contract_conditions_in, ref contract_conditions_inx, ref contract_data_in, ref contract_data_inx, ref contract_items_in, ref contract_items_inx, ref contract_keys, ref contract_partners, ref contract_text, ref extensionin, ref partneraddresses, ref breturn ); if (breturn != null) { for (int i = 0; i <= breturn.Length - 1; i++) { if ((breturn[i].TYPE.ToUpper() == "S") && (breturn[i].NUMBER == "311")) { result.Add(new Result ( success: true, message: "CONTRACT_NUMBER", payload: breturn[i].MESSAGE_V2 )); } else { result.Add(new Result ( success: (breturn[i].TYPE == "S"), message: breturn[i].MESSAGE )); } } } } catch (Exception ex) { result.Add(new Result ( success: false, message: ex.Message )); if (ex.InnerException != null) { result.Add(new Result ( success: false, message: ex.InnerException.Message )); } } return(result); }