Zavaski

Untitled

Oct 5th, 2018
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.60 KB | None | 0 0
  1. import ABSL;
  2. import AP.Common.GDT;
  3. import AP.FO.BusinessPartner.Global;
  4.  
  5. var idOpp : LANGUAGEINDEPENDENT_ENCRYPTED_EXTENDED_Name; //ID Oportunidade //765 caracteres
  6. var uuidOpp : LANGUAGEINDEPENDENT_ENCRYPTED_EXTENDED_Name; //UUID Oportunidade
  7. var idProduto : LANGUAGEINDEPENDENT_ENCRYPTED_EXTENDED_Name; //ID Produto
  8. var nomeOpp : LANGUAGEINDEPENDENT_ENCRYPTED_EXTENDED_Name; //Nome da Oportunidade
  9. var operacao : LANGUAGEINDEPENDENT_ENCRYPTED_EXTENDED_Name; //Operação
  10. var status : LANGUAGEINDEPENDENT_ENCRYPTED_EXTENDED_Name; //Status
  11. var vendedor : LANGUAGEINDEPENDENT_ENCRYPTED_EXTENDED_Name; //Vendedor
  12.  
  13. //------------------------------------------ Fill the Request -----------------------------------------------//
  14. idOpp = this.ID.content.RemoveLeadingZeros();
  15. uuidOpp = this.UUID.content.ToString();
  16. nomeOpp = this.Name.content;
  17. if(this.Item.Count() == 1) { //Check the product quantity, it must be one
  18. var itemProduct = this.Item.GetFirst().ItemProduct;
  19. if(itemProduct.IsSet()) {
  20. idProduto = itemProduct.ProductKey.ProductID.content;
  21. }
  22. else {
  23. raise GenericMessage.Create("E", "Erro ao buscar ID do produto");
  24. this.allowSave = false;
  25. return;
  26. }
  27. }
  28. else {
  29. raise GenericMessage.Create("E", "A Oportunidade deve conter 1 produto cadastrado");
  30. this.allowSave = false;
  31. return;
  32. }
  33. operacao = this.Operao;
  34. if(this.ProspectParty.IsSet()) { //If there is a client associated to the opportunity
  35. var customer = Customer.Retrieve(this.ProspectParty.PartyUUID); //Get the client
  36. if(customer.IsSet()){
  37. vendedor = customer.InternalID.RemoveLeadingZeros();
  38. }
  39. }
  40. status = this.Status.LifeCycleStatusCode;
  41. //--------------------------------------- End of Fill the Request --------------------------------------------//
  42.  
  43.  
  44. //------------------------------------------- Request GET ----------------------------------------------------//
  45. //To check if the opportunity is on Boletagem
  46. var requestGET : Library::OppGET_WSDL.SI_BUSCA_OPORTUNIDADE_OUT.Request; //It needs to get the opportunity first and them send all the information exactly the same as in Boletagem
  47. var responseGET : Library::OppGET_WSDL.SI_BUSCA_OPORTUNIDADE_OUT.Response;
  48. var scenarioGET = "OppGET_Scenario";
  49. var wasSentBoletagem = false;
  50. requestGET.MT_BUSCA_OPORTUNIDADE_OUT.ID = this.ID.content.RemoveLeadingZeros();
  51. responseGET = Library::OppGET_WSDL.SI_BUSCA_OPORTUNIDADE_OUT(requestGET, "", scenarioGET);
  52. if (responseGET.IsInitial()) {
  53. raise GenericMessage.Create("E", "Erro ao enviar a Oportunidade para o Boletagem");
  54. this.allowSave = false;
  55. return;
  56. } else {
  57. // fault messages
  58. var faultItems = responseGET.CommunicationFault.Item;
  59. var severity;
  60. if (faultItems.Count() > 0) {
  61. // do not send the complete error stack to the user. Assumption: last message is the most important on.
  62. raise GenericMessage.Create("E", "Erro: " + faultItems.GetLast().Note);
  63. this.allowSave = false;
  64. return;
  65. }
  66. }
  67. if(responseGET.MT_BUSCA_OPORTUNIDADE_OUT_RESPONSE.LOG.IsInitial() && !responseGET.MT_BUSCA_OPORTUNIDADE_OUT_RESPONSE.OPORTUNIDADE.IsInitial()) {
  68. wasSentBoletagem = true;
  69. }
  70. //--------------------------------------------- Send the opportunity ---------------------------------------------------//
  71. if(!wasSentBoletagem) {
  72. var requestOpp : Library::OppPOST_WSDL.SI_OPORTUNIDADE_SYNC_OUT.Request;
  73. var responseOpp : Library::OppPOST_WSDL.SI_OPORTUNIDADE_SYNC_OUT.Response;
  74. var scenario = "OppPOST_Scenario";
  75.  
  76. requestOpp.MT_OPORTUNIDADE_OUT.ID_OPORTUNIDADE = idOpp;
  77. requestOpp.MT_OPORTUNIDADE_OUT.UUID_OPORTUNIDADE = uuidOpp;
  78. requestOpp.MT_OPORTUNIDADE_OUT.NOME_OPORTUNIDADE = nomeOpp;
  79. requestOpp.MT_OPORTUNIDADE_OUT.ID_PRODUTO = idProduto;
  80. requestOpp.MT_OPORTUNIDADE_OUT.OPERACAO = operacao;
  81. requestOpp.MT_OPORTUNIDADE_OUT.VENDEDOR = vendedor;
  82. requestOpp.MT_OPORTUNIDADE_OUT.STATUS = status;
  83.  
  84. responseOpp = Library::OppPOST_WSDL.SI_OPORTUNIDADE_SYNC_OUT(requestOpp, "", scenario);
  85.  
  86. // error handling // no info at all
  87. if (responseOpp.IsInitial()) {
  88. raise GenericMessage.Create("E", "Erro ao enviar a Oportunidade para o Boletagem");
  89. this.allowSave = false;
  90. } else {
  91. // fault messages
  92. var faultItems = responseOpp.CommunicationFault.Item;
  93. var severity;
  94. if (faultItems.Count() > 0) {
  95. // do not send the complete error stack to the user. Assumption: last message is the most important on.
  96. raise GenericMessage.Create("E", "Erro: " + faultItems.GetLast().Note);
  97. this.allowSave = false;
  98. }
  99. }
  100. if(this.allowSave) {
  101. if(responseOpp.MT_OPORTUNIDADE_OUT_RESPONSE.Message == "201 - Created") {
  102. raise GenericMessage.Create("S", responseOpp.MT_OPORTUNIDADE_OUT_RESPONSE.MessageDetail);
  103. this.wasSentToBoletagemOpp = true;
  104. }
  105. else {
  106. raise GenericMessage.Create("E", responseOpp.MT_OPORTUNIDADE_OUT_RESPONSE.MessageDetail);
  107. this.allowSave = false;
  108. }
  109. }
  110. } else {
  111. var requestOpp : Library::OppPUT_WSDL.SI_ALTERA_OPORTUNIDADE_SYNC_OUT.Request;
  112. var responseOpp : Library::OppPUT_WSDL.SI_ALTERA_OPORTUNIDADE_SYNC_OUT.Response;
  113. var scenario = "OppPUT_Scenario";
  114.  
  115. if (this.Status.LifeCycleStatusCode == "3" || this.Status.LifeCycleStatusCode == "4" || this.Status.LifeCycleStatusCode == "5") { //When is Stopped, Won and Lost
  116. var request : Library::OppGET_WSDL.SI_BUSCA_OPORTUNIDADE_OUT.Request; //It needs to get the opportunity first and them send all the information exactly the same as in Boletagem
  117. var response : Library::OppGET_WSDL.SI_BUSCA_OPORTUNIDADE_OUT.Response;
  118. var scenario_get = "OppGET_Scenario";
  119. request.MT_BUSCA_OPORTUNIDADE_OUT.ID = this.ID.content.RemoveLeadingZeros();
  120. response = Library::OppGET_WSDL.SI_BUSCA_OPORTUNIDADE_OUT(request, "", scenario_get);
  121. // error handling // no info at all
  122. if (response.IsInitial()) {
  123. raise GenericMessage.Create("E", "Erro ao enviar a Oportunidade para o Boletagem");
  124. this.allowSave = false;
  125. return;
  126. } else {
  127. // fault messages
  128. var faultItems = response.CommunicationFault.Item;
  129. var severity;
  130. if (faultItems.Count() > 0) {
  131. // do not send the complete error stack to the user. Assumption: last message is the most important on.
  132. raise GenericMessage.Create("E", "Erro: " + faultItems.GetLast().Note);
  133. this.allowSave = false;
  134. return;
  135. }
  136. }
  137. if(response.MT_BUSCA_OPORTUNIDADE_OUT_RESPONSE.OPORTUNIDADE.IsInitial()) {
  138. raise GenericMessage.Create("E", "Erro ao enviar a Oportunidade para o Boletagem");
  139. this.allowSave = false;
  140. return;
  141. }
  142. requestOpp.MT_ALTERA_OPORTUNIDADE_OUT.ID_OPORTUNIDADE = idOpp;
  143. requestOpp.MT_ALTERA_OPORTUNIDADE_OUT.STATUS = status; //Only the status is different
  144. requestOpp.MT_ALTERA_OPORTUNIDADE_OUT.UUID_OPORTUNIDADE = response.MT_BUSCA_OPORTUNIDADE_OUT_RESPONSE.OPORTUNIDADE.UUID;
  145. requestOpp.MT_ALTERA_OPORTUNIDADE_OUT.NOME_OPORTUNIDADE = response.MT_BUSCA_OPORTUNIDADE_OUT_RESPONSE.OPORTUNIDADE.NOME;
  146. requestOpp.MT_ALTERA_OPORTUNIDADE_OUT.ID_PRODUTO = response.MT_BUSCA_OPORTUNIDADE_OUT_RESPONSE.OPORTUNIDADE.ID_PRODUTO;
  147. requestOpp.MT_ALTERA_OPORTUNIDADE_OUT.OPERACAO = response.MT_BUSCA_OPORTUNIDADE_OUT_RESPONSE.OPORTUNIDADE.TIPO_OPERACAO;
  148. requestOpp.MT_ALTERA_OPORTUNIDADE_OUT.VENDEDOR = response.MT_BUSCA_OPORTUNIDADE_OUT_RESPONSE.OPORTUNIDADE.ID_EMPRESA;
  149. } else {
  150. requestOpp.MT_ALTERA_OPORTUNIDADE_OUT.ID_OPORTUNIDADE = idOpp;
  151. requestOpp.MT_ALTERA_OPORTUNIDADE_OUT.UUID_OPORTUNIDADE = uuidOpp;
  152. requestOpp.MT_ALTERA_OPORTUNIDADE_OUT.NOME_OPORTUNIDADE = nomeOpp;
  153. requestOpp.MT_ALTERA_OPORTUNIDADE_OUT.ID_PRODUTO = idProduto;
  154. requestOpp.MT_ALTERA_OPORTUNIDADE_OUT.OPERACAO = operacao;
  155. requestOpp.MT_ALTERA_OPORTUNIDADE_OUT.VENDEDOR = vendedor;
  156. requestOpp.MT_ALTERA_OPORTUNIDADE_OUT.STATUS = status;
  157. }
  158.  
  159. responseOpp = Library::OppPUT_WSDL.SI_ALTERA_OPORTUNIDADE_SYNC_OUT(requestOpp, "", scenario);
  160.  
  161. // error handling // no info at all
  162. if (responseOpp.IsInitial()) {
  163. raise GenericMessage.Create("E", "Erro ao enviar o Oportunidade para o Boletagem");
  164. this.allowSave = false;
  165. } else {
  166. // fault messages
  167. var faultItems = responseOpp.CommunicationFault.Item;
  168. var severity;
  169. if (faultItems.Count() > 0) {
  170. // do not send the complete error stack to the user. Assumption: last message is the most important on.
  171. raise GenericMessage.Create("E", "Erro: " + faultItems.GetLast().Note);
  172. this.allowSave = false;
  173. }
  174. }
  175. if(this.allowSave) {
  176. if(responseOpp.MT_ALTERA_OPORTUNIDADE_OUT_RESPONSE.Message.Contains("204")) {
  177. //Does not need to show this message
  178. //raise GenericMessage.Create("S", responseOpp.MT_ALTERA_OPORTUNIDADE_OUT_RESPONSE.MessageDetail);
  179. }
  180. else {
  181. raise GenericMessage.Create("E", responseOpp.MT_ALTERA_OPORTUNIDADE_OUT_RESPONSE.MessageDetail);
  182. this.allowSave = false;
  183. }
  184. }
  185. }
Add Comment
Please, Sign In to add comment