#include "util.h" int erp_update(tag_t task, string key_str, string pref1, string pref2) { printf("start kl_erp_update\n"); tag_t *atts, root_task; int att_cnt; EPM_ask_root_task(task, &root_task); EPM_ask_attachments(root_task, EPM_target_attachment, &att_cnt, &atts); int pref_cnt, pref_cnt2; char **pref_vals, **pref_vals2; PREF_ask_char_values(pref1.c_str(), &pref_cnt, &pref_vals); PREF_ask_char_values(pref2.c_str(), &pref_cnt2, &pref_vals2); vector configs; Document doc0, doc1, doc2, doc3, doc4, doc5, doc6, doc7; vector vec; vec.push_back(&doc0); vec.push_back(&doc1); vec.push_back(&doc2); vec.push_back(&doc3); vec.push_back(&doc4); vec.push_back(&doc5); vec.push_back(&doc6); vec.push_back(&doc7); for (auto i = 0; iParse(pref_vals2[i]); configs.push_back(vec[i]); } string ip = pref_vals[0]; string token_url = ip + "/K3API/Token/Create?authorityCode=" + pref_vals[1]; POM_AM__set_application_bypass(true); System::String ^key = convert_to_cstring(key_str.c_str()); Testclass ^class1 = gcnew Testclass(); string token = ConvertToString(class1->GetToken(convert_to_cstring(token_url.c_str()),key)); printf("token:%s\n", token.c_str()); string s_url = ip + "/K3API/Material/Update?token=" + token; System::String ^save_url = convert_to_cstring(s_url.c_str()); for (auto i = 0; i5) ? (Value().SetString(get_val(atts[i], "kl3_bzqt"), al)) : Value().SetString("", al), al); data.AddMember("FISKFPeriod", true, al); data.AddMember("FFixLeadTime", (type != 1 && type != 2 && type != 6) ? (Value().SetString(get_val(atts[i], "kl3_gdtql"), al)) : Value().SetString("", al), al); data.AddMember("F_132", (type<3 || type == 6) ? (Value().SetString(get_val(atts[i], "kl3_color"), al)) : Value().SetString("", al), al); data.AddMember("FErpClsID", get_wlsx(get_val(atts[i], "kl3_item_wlsx"), al, *configs[5]), al); string jldwz = get_val(atts[i], "kl3_jldwz"); int jldw_index = jldwz.find('/'); jldwz = jldw_index != -1 ? jldwz.substr(0, jldw_index) : jldwz; Value &jldw_val = (*configs[4])[jldwz.c_str()]; if (!jldw_val.IsNull()) { // Value jldw(kObjectType); // jldw.AddMember("FName", Value().SetString(jldwz.c_str(), al), al); // jldw.AddMember("FNumber", Value().SetString(jldw_val["id"].GetString(), al), al); // data.AddMember("FUnitGroupID", jldw, al); data.AddMember("FUnitID", get_jldw(get_val(atts[i], "kl3_jbjldw"), al, jldw_val), al); data.AddMember("FOrderUnitID", get_jldw(get_val(atts[i], "kl3_cgjldw"), al, jldw_val), al); data.AddMember("FSaleUnitID", get_jldw(get_val(atts[i], "kl3_xsjldw"), al, jldw_val), al); data.AddMember("FProductUnitID", get_jldw(get_val(atts[i], "kl3_item_scjldw"), al, jldw_val), al); data.AddMember("FStoreUnitID", get_jldw(get_val(atts[i], "kl3_kcjldw"), al, jldw_val), al); } printf("222\n"); switch (type) { case 0: data.AddMember("FDefaultLoc", 651, al); break; case 1: case 2: data.AddMember("FDefaultLoc", (*configs[1])[get_val(atts[i], "kl3_mrck")], al); break; case 3: case 5: data.AddMember("FDefaultLoc", 666, al); break; case 4: data.AddMember("FDefaultLoc", 667, al); break; default: break; } if (type == 0) { data.AddMember("FSecInv", Value().SetString(get_val(atts[i], "kl3_aqkcsl"), al), al); data.AddMember("FQtyMin", Value().SetString(get_val(atts[i], "kl3_zxdhl"), al), al); data.AddMember("FBatchAppendQty", Value().SetString(get_val(atts[i], "kl3_plzl"), al), al); data.AddMember("F_112", Value().SetString(get_val(atts[i], "kl3_brand"), al), al); data.AddMember("F_106", Value().SetString(get_val(atts[i], "kl3_dxsl"), al), al); data.AddMember("F_131", Value().SetString(get_val(atts[i], "kl3_clfl"), al), al); } if (type == 2) { Value type_id(kObjectType); string wlfl = get_val(atts[i], "kl3_wlfl"); type_id.AddMember("FID", (*configs[0])[wlfl.c_str()], al); type_id.AddMember("FName", Value().SetString(wlfl.c_str(), al), al); data.AddMember("FTypeID", type_id, al); data.AddMember("F_112", Value().SetString(get_val(atts[i], "kl3_brand"), al), al); data.AddMember("F_109", Value().SetString(get_val(atts[i], "kl3_bzsj"), al), al); data.AddMember("F_118", Value().SetString(get_val(atts[i], "kl3_bzyf"), al), al); data.AddMember("F_124", Value().SetString(get_val(atts[i], "kl3_cx"), al), al); data.AddMember("F_114", Value().SetString(get_val(atts[i], "kl3_lcrq"), al), al); data.AddMember("F_104", Value().SetString(get_val(atts[i], "kl3_ncl"), al), al); data.AddMember("F_105", Value().SetString(get_val(atts[i], "kl3_yl"), al), al); data.AddMember("F_119", Value().SetString(get_val(atts[i], "kl3_sm"), al), al); data.AddMember("F_106", Value().SetString(get_val(atts[i], "kl3_dxsl"), al), al); data.AddMember("F_133", Value().SetString(get_val(atts[i], "kl3_OTSdhrq"), al), al); data.AddMember("F_134", Value().SetString(get_val(atts[i], "kl3_zjcmc"), al), al); data.AddMember("F_135", Value().SetString(get_val(atts[i], "kl3_lccxmc"), al), al); data.AddMember("F_136", 0, al); data.AddMember("F_138", 0, al); data.AddMember("F_137", Value().SetString(get_val(atts[i], "kl3_cpzt"), al), al); } if (type == 4) { data.AddMember("FSecInv", Value().SetString(get_val(atts[i], "kl3_aqkc"), al), al); data.AddMember("FLowLimit", Value().SetString(get_val(atts[i], "kl3_zdkc"), al), al); data.AddMember("FHighLimit", Value().SetString(get_val(atts[i], "kl3_zgkc"), al), al); } Value data2(kObjectType); data2.AddMember("FNumber", Value().SetString(get_val(rev, "item_id"), al), al); data2.AddMember("Data", data, al); doc.AddMember("Data", data2, al); StringBuffer sb; Writer writer(sb); doc.Accept(writer); printf("data:%s\n", sb.GetString()); string result = ConvertToString(class1->Send(save_url, convert_to_cstring(sb.GetString()),key)); printf("result:%s\n", result.c_str()); if(result[0]=='s') { LOG(INFO) << result; }else { LOG(ERROR) << result; } } POM_AM__set_application_bypass(false); return 0; } int kl_erp_update(EPM_action_message_t msg) { int arg_cnt = TC_number_of_arguments(msg.arguments); string key, pref1, pref2; for (auto i = 0; i