Commit 249c5e84 authored by Ilya Veselov's avatar Ilya Veselov

script_new_doc

parent 20078649
/**
* Код реестра в котором нужно создать запись
*/
let registryCode = 'registryCode';
var host = 'http://127.0.0.1:8080/Synergy/rest';
function api_get_json(req, userlogin, userpass) {
let api = new org.apache.commons.httpclient.methods.GetMethod('http://127.0.0.1:8080/Synergy/rest'+req);
let client = new org.apache.commons.httpclient.HttpClient();
let creds = new org.apache.commons.httpclient.UsernamePasswordCredentials(userlogin, userpass);
client.getParams().setAuthenticationPreemptive(true);
client.getState().setCredentials(org.apache.commons.httpclient.auth.AuthScope.ANY, creds);
api.setRequestHeader("Content-type", "application/json");
let status = client.executeMethod(api);
let responseBody = api.getResponseBodyAsString();
api.releaseConnection();
message = req +" "+status+" "+responseBody;
return JSON.parse(responseBody);
}
function api_post_form(req, options) {
let client = new org.apache.commons.httpclient.HttpClient();
let creds = new org.apache.commons.httpclient.UsernamePasswordCredentials(options.userlogin, options.userpass);
client.getParams().setAuthenticationPreemptive(true);
client.getState().setCredentials(org.apache.commons.httpclient.auth.AuthScope.ANY, creds);
var api = new org.apache.commons.httpclient.methods.PostMethod(options.host + req);
if (options && options.datatype=='body') {
api.setRequestHeader('Content-type', 'application/json; charset=utf-8');
if(options.data) api.setRequestBody(options.data);
}
if (options && options.datatype=='form') {
api.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=utf-8');
if(options.data) api.addParameter("data", options.data['data']);
}
var result = client.executeMethod(api); let responseBody = api.getResponseBodyAsString();
api.releaseConnection();
return (options && options.resType == 'text' ? result : JSON.parse(responseBody));
}
/**
* dataUUID - идентификатор данных по форме записи реестра
* documentID - идентификатор документа реестра
* executionID - идентификатор блокирующего процесса
*/
/*загружаем данные формы текущей записи*/
let form = platform.getFormsManager().getFormData(dataUUID);
form.load();
/*записываем в массив данные из текущей записи*/
let fldata = [];
fldata.push({id: "num_contract_number_kz", type: "textbox", value : form.getValue('num_contract_number')});
fldata.push({id: "list_name_city_ru", type: "textbox", value:form.getValue('list_name_city')});
/*создаем запись реестра с данными из текущей записи*/
let response = api_post_form('/api/registry/create_doc_rcc', {
type: 'POST',
datatype: 'body',
host: host,
userlogin: login,
userpass: password,
data: JSON.stringify({
registryCode: registryCode,
data : fldata
})
});
console.error("=====result of doc creating: " + response.documentID);
let cData = [];
/*сохранение ссылки на созданный документ в текущем записи*/
cData.push({id: "contract_individual", type: "reglink", key:response.documentID, valueID:response.documentID});
let saveResponse = api_post_form('/api/asforms/data/merge', {
type: 'POST',
datatype: 'body',
host: host,
userlogin: login,
userpass: password,
data: JSON.stringify({
uuid: dataUUID,
data : cData
}
)
});
console.error('\n\n\nREGISTRY CREATE RCC ' + registryCode + ' status: ' + JSON.stringify(response) + '\n\n\n');
result = true;
message = 'запись создана';
#Сохранение произвольного значения компонента на форме через скрипт интерпретатора
Вариант использования скрипта: запись реестра проходит по маршруту, в ходе которого требуется создать запись в другом реестре. При этом новая запись должна содержать данные из текущего документа и быть сохранённой в нём как ссылка на реестр.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment