svn path=/Mareon/trunk/; revision=23914

This commit is contained in:
Marcel Bourseau
2015-01-21 12:41:03 +00:00
parent 711fa0f5d5
commit 944498adc4
28 changed files with 1758 additions and 0 deletions

131
ax/AxFacilitor.NMK Normal file
View File

@@ -0,0 +1,131 @@
###############################################################################
## AxFacilitor.nmk
##
## Project: SM44 FACILITOR
##
## (c) 1995-2014 SG|facilitor bv
##
##
## $Revision: 21949 $
## $Id: AxFacilitor.NMK 21949 2014-06-19 08:34:19Z jgl $
##
## Beschrijving:
##
#
##
###############################################################################
## REQUIRES: (in searchpath)
##
## NMAKE.EXE (requires NMAKE.EXE)
## Microsoft (R) Program Maintainance Utility Version 1.11
## CL.EXE
## Microsoft (R) C Optimizing Compiler Version 6.00A
## -for precompiling only-
## WRAP.EXE (from 10.2.x) for Oracle, renamed to WRAP10.EXE
##
## SED.EXE
## GNU sed version 4.2
## Copyright (C) 2003 Free Software Foundation, Inc.
##
## All to be found in ..\MAKTOOLS
##
## Uses (external) defines: None
##
## Note: If new modules are added, all source have to be mentioned separately,
## which is quite obvious from the current state of this file..
##
## Note: For each new schema version the from and to version must be
## mentioned explicitly, which is a pity but it makes sense too
##
###############################################################################
##
## Steps performed are:
## All files are preprocessed directly into their result, no temp files
#############
##
## Directories
##
#############
PROJSRC=.\SRC
PROJEXE=.\EXE
### SOURCE DEFINES (gets info from commandline) ###
##
## New style using schemanumbers
##
VERSION=01
##
## PATH DEFINES
##
MAK=.
##
## Source rootdirectory
##
MSRC=$(PROJSRC)
EXE=$(PROJEXE)
PRECOMP=$(MAKTOOLS)\CL
PRECOMP_OPTIONS=/EP /D_VER=$(VERSION)
CLEANUP1=$(MAKTOOLS)\sedclean.bat
.SUFFIXES: .JS .BAT .XML
##
## RESULTS
##
all: $(EXE)\AxFacilitor.js \
$(EXE)\AxFacilitor.bat \
$(EXE)\AxFacilitor.xml
##########################################################################
####
#### AX FACILITOR
####
##########################################################################
$(EXE)\AxFacilitor.bat : $(MSRC)\AxFacilitor.bat
echo Copying AxFacilitor.bat
COPY $(MSRC)\AxFacilitor.bat $(EXE)\AxFacilitor.bat > nul
$(EXE)\AxFacilitor.xml : $(MSRC)\AxFacilitor.xml
echo Copying AxFacilitor.xml
COPY $(MSRC)\AxFacilitor.xml $(EXE)\AxFacilitor.xml > nul
$(EXE)\AxFacilitor.js: \
$(MAK)\AxFacilitor.nmk \
$(MSRC)\AxFacilitor.js \
$(MSRC)\F_PutSync.js \
$(MSRC)\F_GetSuppliers.js \
$(MSRC)\A_GetOpdrachten.js \
$(MSRC)\T_GetOpdrachten.js \
$(MSRC)\F_PutOpdrachten.js \
$(MSRC)\A_SetSupplierText.js \
$(MSRC)\T_SetSupplierText.js \
$(MSRC)\F_GetOpdrachtenAfgemeld.js \
$(MSRC)\A_CompleteServiceTask.js \
$(MSRC)\T_CompleteServiceTask.js \
$(MSRC)\F_GetOpdrachtenGepland.js \
$(MSRC)\A_PlanServiceTask.js \
$(MSRC)\T_PlanServiceTask.js \
$(MSRC)\F_GetOpdrachtenAcceptedRefused.js \
$(MSRC)\A_RefuseServiceTask.js \
$(MSRC)\A_AcceptServiceTask.js \
$(MSRC)\T_AcceptServiceTask.js \
$(MSRC)\F_GetOpdrachtenOpmerking.js \
$(MSRC)\A_GetReturnCodes.js \
$(MSRC)\F_PutReturnCodes.js \
$(MSRC)\F_GetFacturen.js \
$(MSRC)\Common.js
$(PRECOMP) $(PRECOMP_OPTIONS) $(MAK)\AxFacilitor.src>$*.js
## END-OF-FILE

30
ax/AxFacilitor.SRC Normal file
View File

@@ -0,0 +1,30 @@
//-- Copyright 2014 SG|facilitor bv.
//-- All rights reserved!
/*
* $Revision: 19961 $
* $Id: $
*/
#include "SRC\Common.js"
#include "SRC\F_PutSync.js"
#include "SRC\F_GetSuppliers.js"
#include "SRC\A_GetOpdrachten.js"
#include "SRC\T_GetOpdrachten.js"
#include "SRC\F_PutOpdrachten.js"
#include "SRC\A_SetSupplierText.js"
#include "SRC\T_SetSupplierText.js"
#include "SRC\F_GetOpdrachtenAfgemeld.js"
#include "SRC\A_CompleteServiceTask.js"
#include "SRC\T_CompleteServiceTask.js"
#include "SRC\F_GetOpdrachtenGepland.js"
#include "SRC\A_PlanServiceTask.js"
#include "SRC\T_PlanServiceTask.js"
#include "SRC\F_GetOpdrachtenAcceptedRefused.js"
#include "SRC\A_RefuseServiceTask.js"
#include "SRC\A_AcceptServiceTask.js"
#include "SRC\T_AcceptServiceTask.js"
#include "SRC\F_GetOpdrachtenOpmerking.js"
#include "SRC\A_GetReturnCodes.js"
#include "SRC\F_PutReturnCodes.js"
#include "SRC\F_GetFacturen.js"
#include "SRC\AxFacilitor.js"

14
ax/M.BAT Normal file
View File

@@ -0,0 +1,14 @@
@echo off
echo Making Ax-Facilitor
SET MAKTOOLS=z:\Project\FACILITOR\Tools\MAKTOOLS
SET INCLUDE=.
%MAKTOOLS%\nmake /nologo /f AxFacilitor.nmk
@echo Done... (check process output above)
IF x%1==xNOWAIT GOTO DONE
pause
:DONE

View File

@@ -0,0 +1,32 @@
// --------------------------------------------------------------------------------------
// A_AcceptServiceTask.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
function A_AcceptServiceTask(v_company_id, v_taskId)
{
var v_API = "acceptServiceTask";
var v_req = "<acceptServiceTask xmlns=\"http://tempuri.org/\">"
+ " <companyId>" + v_company_id + "</companyId>"
+ " <taskId>" + v_taskId + "</taskId>"
+ " </acceptServiceTask>";
var v_type = 0;
var v_resp = apiAX(v_API, v_req, v_type);
if (v_type == 1 && v_resp != "")
{
oStream = new ActiveXObject("ADODB.Stream");
oStream.Open();
oStream.Type = 1; // adTypeBinary
oStream.Write(v_resp); // responseText geeft encoding problemen!
oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
oStream.Close();
}
return v_resp;
}

View File

@@ -0,0 +1,34 @@
// --------------------------------------------------------------------------------------
// A_CompleteServiceTask.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
function A_CompleteServiceTask (v_company_id, v_taskId, v_dateComplete)
{
var v_API = "completeServiceTask";
var v_req = "<completeServiceTask xmlns=\"http://tempuri.org/\">"
+ " <companyId>" + v_company_id + "</companyId>"
+ " <taskId>" + v_taskId + "</taskId>"
+ " <dateComplete>" + v_dateComplete + "</dateComplete>"
+ " </completeServiceTask>";
var v_type = 0;
var v_resp = apiAX(v_API, v_req, v_type);
if (v_type == 1 && v_resp != "")
{
oStream = new ActiveXObject("ADODB.Stream");
oStream.Open();
oStream.Type = 1; // adTypeBinary
oStream.Write(v_resp); // responseText geeft encoding problemen!
oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
oStream.Close();
}
return v_resp;
}

61
ax/SRC/A_GetOpdrachten.js Normal file
View File

@@ -0,0 +1,61 @@
// --------------------------------------------------------------------------------------
// A_GetOpdrachten.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
function A_GetOpdrachten()
{
var v_status_code = "o"; // open
var l_currentTime = new Date();
// l_aantal_dagen staat default/normaal op 1 (voor gisteren), dus alle opdrachten vanaf gisteren. Voor testdoeleinden kan dit wat opgerekt worden...
// var l_aantal_dagen = 1;
var l_aantal_dagen = Read_Ini_Setting("ax","opdr_past_days");
var l_yesterday = new Date((new Date()).valueOf() - l_aantal_dagen*1000*60*60*24);
var v_datum_vanaf = jsdatextoxml(l_yesterday);
var v_datum_tm = jsdatextoxml(l_currentTime);
var v_xml_opdrachten;
// Haal de aannemers (feitelijk de AX-aannemer-id's) uit Facilitor die geregistreerd zijn voor het aannemersportaal.
// Het aannemer-id van AX wordt uit Facilitor uitgelezen, en per aannemer wordt de webservice om de opdrachten van die aannemer op te halen, aangeroepen...
l_suppl_array = F_GetSuppliers();
for (var i = 0; i < l_suppl_array.length; i++){
v_supplier_id = l_suppl_array[i];
// Ophalen van de opdrachten voor aannemer 'v_supplier_id' vanaf (default) gisteren tot en met nu.
v_xml_opdrachten = A_GetOpdrachten_van_Aannemer(v_supplier_id, v_status_code, v_datum_vanaf, v_datum_tm);
// Wegschrijven van de opdrachten (voor aannemer 'v_supplier_id') naar Facilitor....
api_F_PutOpdrachten(v_xml_opdrachten, "AX_OPDRACHTEN");
}
}
function A_GetOpdrachten_van_Aannemer(v_supplier_id, v_status_code, v_datum_vanaf, v_datum_tm)
{
var v_API = "GetSupplierTasksSpec";
var v_req = "<GetSupplierTasksSpec xmlns=\"http://tempuri.org/\">"
+ " <vendAccountNum>" + v_supplier_id + "</vendAccountNum>"
+ " <taskStatus>" + v_status_code + "</taskStatus>"
+ " <startRange>" + v_datum_vanaf + "</startRange>"
+ " <endRange>" + v_datum_tm + "</endRange>"
+ " </GetSupplierTasksSpec>";
var v_type = 0;
var v_resp = apiAX(v_API, v_req, v_type);
//if (v_type == 1 && v_resp != "")
// {
// oStream = new ActiveXObject("ADODB.Stream");
// oStream.Open();
// oStream.Type = 1; // adTypeBinary
// oStream.Write(v_resp); // responseText geeft encoding problemen!
// oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
// oStream.Close();
// }
return v_resp;
}

View File

@@ -0,0 +1,82 @@
// --------------------------------------------------------------------------------------
// A_GetReturnCodes.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
function A_GetReturnCodes()
{
var v_arr_company_id = [1];
var v_company_id;
var v_xml_weiger_codes;
// Haal de returncodes van de weigerteksten uit AX voor elke companyid.
for (var i = 0; i < v_arr_company_id.length; i++){
v_company_id = v_arr_company_id[i];
// Ophalen van de opdrachten voor aannemer 'v_supplier_id' vanaf (default) gisteren tot en met nu.
v_xml_returncodes = A_GetReturnCodes_van_Company(v_company_id);
// Wegschrijven van de opdrachten (voor aannemer 'v_supplier_id') naar Facilitor....
F_PutReturnCodes(v_xml_returncodes);
}
}
/*
<getReturnCodes>
<MethodParameters>
<ReturnCodeArray>
<ReturnCodeArray0>
<CodeId>Besteld</CodeId>
<Description>Materialen besteld (vervolgbon op zelfde melding)</Description>
</ReturnCodeArray0>
<ReturnCodeArray1>
<CodeId>Materiaal</CodeId>
<Description>Materiaal gehaald, factuur volgt</Description>
</ReturnCodeArray1>
<ReturnCodeArray2>
<CodeId>Niet thuis</CodeId>
<Description>Bewoner niet thuis ondanks afspraak</Description>
</ReturnCodeArray2>
<ReturnCodeArray3>
<CodeId>Vervolg</CodeId>
<Description>Vervolgafspraak maken op zelfde melding</Description>
</ReturnCodeArray3>
<ReturnCodeArray4>
<CodeId>Wachten</CodeId>
<Description>Wacht op bestelde materialen</Description>
</ReturnCodeArray4>
</ReturnCodeArray>
</MethodParameters>
</getReturnCodes>
*/
function A_GetReturnCodes_van_Company(v_company_id)
{
var v_API = "getReturnCodes";
var v_req = "<getReturnCodes xmlns=\"http://tempuri.org/\">"
+ " <companyId>" + v_company_id + "</companyId>"
+ " </getReturnCodes>";
var v_type = 0;
var v_resp = apiAX(v_API, v_req, v_type);
//if (v_type == 1 && v_resp != "")
// {
// oStream = new ActiveXObject("ADODB.Stream");
// oStream.Open();
// oStream.Type = 1; // adTypeBinary
// oStream.Write(v_resp); // responseText geeft encoding problemen!
// oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
// oStream.Close();
// }
return v_resp;
}

View File

@@ -0,0 +1,34 @@
// --------------------------------------------------------------------------------------
// A_PlanServiceTask.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
function A_PlanServiceTask(v_company_id, v_taskId, v_plandate)
{
var v_API = "planServiceTask";
var v_req = "<planServiceTask xmlns=\"http://tempuri.org/\">"
+ " <companyId>" + v_company_id + "</companyId>"
+ " <taskId>" + v_taskId + "</taskId>"
+ " <planDate>" + v_plandate + "</planDate>"
+ " </planServiceTask>";
var v_type = 0;
var v_resp = apiAX(v_API, v_req, v_type);
if (v_type == 1 && v_resp != "")
{
oStream = new ActiveXObject("ADODB.Stream");
oStream.Open();
oStream.Type = 1; // adTypeBinary
oStream.Write(v_resp); // responseText geeft encoding problemen!
oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
oStream.Close();
}
return v_resp;
}

View File

@@ -0,0 +1,44 @@
// --------------------------------------------------------------------------------------
// A_RefuseServiceTask.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
function A_RefuseServiceTask(v_company_id, v_taskId, v_resultCodeId)
{
var v_API = "refuseServiceTask";
var v_req = "<refuseServiceTask xmlns=\"http://tempuri.org/\">"
+ " <companyId>" + v_company_id + "</companyId>"
+ " <taskId>" + v_taskId + "</taskId>"
+ " <resultCodeId>" + v_resultCodeId + "</resultCodeId>"
+ " </refuseServiceTask>";
/*
<refuseServiceTask>
<MethodParameters>
<companyId>1</companyId>
<taskId>MLD00004536-01</taskId>
<resultCodeId>Niet thuis</resultCodeId>
</MethodParameters>
</refuseServiceTask>
*/
var v_type = 0;
var v_resp = apiAX(v_API, v_req, v_type);
if (v_type == 1 && v_resp != "")
{
oStream = new ActiveXObject("ADODB.Stream");
oStream.Open();
oStream.Type = 1; // adTypeBinary
oStream.Write(v_resp); // responseText geeft encoding problemen!
oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
oStream.Close();
}
return v_resp;
}

View File

@@ -0,0 +1,35 @@
// --------------------------------------------------------------------------------------
// A_SetSupplierText.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
function A_SetSupplierText(v_company_id, v_taskId, v_extraInfo)
{
var v_API = "setSupplierText";
var v_req = "<setSupplierText xmlns=\"http://tempuri.org/\">"
+ " <companyId>" + v_company_id + "</companyId>"
+ " <taskId>" + v_taskId + "</taskId>"
+ " <extraInfo>" + v_extraInfo + "</extraInfo>"
+ " </setSupplierText>";
var v_type = 0;
var v_resp = apiAX(v_API, v_req, v_type);
if (v_type == 1 && v_resp != "")
{
oStream = new ActiveXObject("ADODB.Stream");
oStream.Open();
oStream.Type = 1; // adTypeBinary
oStream.Write(v_resp); // responseText geeft encoding problemen!
oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
oStream.Close();
}
return v_resp;
}

16
ax/SRC/AxFacilitor.bat Normal file
View File

@@ -0,0 +1,16 @@
REM --------------------------------------------------------------------------------------
REM AxFacilitor.bat
REM Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
REM Written by MB (2014)
REM
REM MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
REM --------------------------------------------------------------------------------------
REM Scheduled Connector/Adapter voor alle communcatie van Ax -> Facilitor en van Facilitor -> Ax
REM Staat elke nn minuten gescheduled en wisselt informatie uit tussen Ax e en FACILITOR
REM 1. Connector/Adapter Ax -> FACILITOR
REM Param 1 = URL Webservice AX
REM Param 2 = Root-URL Webservice FCLT
REM parameters staan voortaan in AxFacilitor.xml
cscript /E:javascript AxFacilitor.js

185
ax/SRC/AxFacilitor.js Normal file
View File

@@ -0,0 +1,185 @@
// --------------------------------------------------------------------------------------
// AxFacilitor.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
// --------------------------------------------------------------------------------------
// Scheduled Connector/Adapter voor alle communcatie van Ax -> Facilitor
// Staat elke nn minuten gescheduled
//var proxy = "127.0.0.1:8888"; // Voor debugging met Fiddler
function FCLT_Sync_START(){
F_PutSync(0);
}
function FCLT_Sync_END(){
F_PutSync(1);
}
// ----------------------------- AX functies -----------------------------------------
function AX_2_FCLT_ReturnCodes(){
A_GetReturnCodes();
}
function AX_2_FCLT_Opdrachten(){
A_GetOpdrachten();
}
function FCLT_2_AX_OpmerkingOpdrachten(){
F_GetOpdrachten_Opmerking();
}
function FCLT_2_AX_AfgemeldeOpdrachten(){
F_GetOpdrachten_Afgemeld();
}
function FCLT_2_AX_GeplandeOpdrachten(){
F_GetOpdrachten_Gepland();
}
function FCLT_2_AX_AcceptRefuseOpdracht(){
F_GetOpdrachten_AcceptRefuse();
}
// ----------------------------- Tobias functies -----------------------------------------
function Tobias_2_FCLT_Opdrachten(){
T_GetOpdrachten();
}
function FCLT_2_Tobias_OpmerkingOpdrachten(){
F_GetOpdrachten_Opmerking();
}
function FCLT_2_Tobias_AcceptRefuseOpdracht(){
F_GetOpdrachten_AcceptRefuse();
}
function FCLT_2_Tobias_GeplandeOpdrachten(){
F_GetOpdrachten_Gepland();
}
function FCLT_2_Tobias_AfgemeldeOpdrachten(){
F_GetOpdrachten_Afgemeld();
}
// ----------------------------- Xtractor functies -----------------------------------------
function FCLT_2_AX_Facturen(){
F_GetFacturen();
}
function Ax_2_FACILITOR()
{
__Log("*** START AX --> FCLT : Weiger returncodes/teksten uit AX en naar Facilitor ***");
AX_2_FCLT_ReturnCodes();
__Log("*** END");
__Log("*** START AX --> FCLT : Opdrachten uit AX en naar Facilitor ***");
AX_2_FCLT_Opdrachten();
__Log("*** END");
__Log("*** START FCLT --> AX : Opmerking opdrachten uit Facilitor naar AX ***");
FCLT_2_AX_OpmerkingOpdrachten();
__Log("*** END");
__Log("*** START FCLT --> AX : Geaccepteerde/geweigerde opdrachten uit Facilitor naar AX ***");
FCLT_2_AX_AcceptRefuseOpdracht();
__Log("*** END");
__Log("*** START FCLT --> AX : Geplande opdrachten uit Facilitor naar AX ***");
FCLT_2_AX_GeplandeOpdrachten();
__Log("*** END");
__Log("*** START FCLT --> AX : Afgemelde opdrachten uit Facilitor naar AX ***");
FCLT_2_AX_AfgemeldeOpdrachten();
__Log("*** END");
}
function Tobias_2_FACILITOR()
{
// "*** START Tobias --> FCLT : Weiger returncodes/teksten uit Tobias ZIJN ER NIET (i.t.t. AX ***");
__Log("*** START Tobias --> FCLT : Opdrachten uit Tobias en naar Facilitor ***");
Tobias_2_FCLT_Opdrachten();
__Log("*** END");
__Log("*** START FCLT --> Tobias : Opmerking opdrachten uit Facilitor naar Tobias ***");
FCLT_2_Tobias_OpmerkingOpdrachten();
__Log("*** END");
__Log("*** START FCLT --> Tobias : Geaccepteerde/geweigerde opdrachten uit Facilitor naar Tobias ***");
FCLT_2_Tobias_AcceptRefuseOpdracht();
__Log("*** END");
__Log("*** START FCLT --> Tobias : Geplande opdrachten uit Facilitor naar Tobias ***");
FCLT_2_Tobias_GeplandeOpdrachten();
__Log("*** END");
__Log("*** START FCLT --> Tobias : Afgemelde opdrachten uit Facilitor naar Tobias ***");
FCLT_2_Tobias_AfgemeldeOpdrachten();
__Log("*** END");
}
function FACILITOR_2_Xtractor()
{
__Log("*** START FCLT --> AX / Tobias/AX : Facturen met status INGEVOERD + AKKOORD uit Facilitor naar AX of Tobias/AX ***");
FCLT_2_AX_Facturen();
__Log("*** END");
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Filepointer voor Logfile
var fso = new ActiveXObject("Scripting.FileSystemObject");
var G_log_level = Read_Ini_Setting("common","logging");
var G_ax_url = Read_Ini_Setting("ax","url");
var G_tobias_url = Read_Ini_Setting("tobias","url");
var G_fclt_url = Read_Ini_Setting("facilitor","url");
var G_fclt_apikey = Read_Ini_Setting("facilitor","apikey");
var G_ax_xtractorfolder = Read_Ini_Setting("xtractor","folder");
__Log("************************************************** START AxFacilitor CONNECTOR ***********************************************");
FCLT_Sync_START();
if (AX_or_Tobias() == "A")
{
__Log("AX");
Ax_2_FACILITOR();
}
if (AX_or_Tobias() == "T")
{
__Log("TOBIAS");
Tobias_2_FACILITOR();
}
//if (G_ax_url != "")
//{
// __Log("AX");
// Ax_2_FACILITOR();
//}
//if (G_tobias_url != "")
//{
// __Log("TOBIAS");
// Tobias_2_FACILITOR();
//}
if (G_ax_xtractorfolder != "")
{
__Log("XTRACTOR");
FACILITOR_2_Xtractor();
}
FCLT_Sync_END();
__Log("************************************************** END AxFacilitor CONNECTOR ***********************************************");
__Log("");

32
ax/SRC/AxFacilitor.xml Normal file
View File

@@ -0,0 +1,32 @@
<?xml version="1.0"?>
<ini>
<common>
<!-- Logging/Loglevel: 0 (geen logging), 1 of 2 (uitgebreide logging). -->
<logging>0</logging>
</common>
<tobias>
<!-- URL van de Tobias webservice 'TobiasConnect' -->
<url>http://so-connect-t/TobiasConnect2_T/TobiasConnect.asmx</url>
<appserver>Appserver://sg-iwtobias:5162/asAannemer_O</appserver>
<methodlocation>Interfaces\External\Aannemer_1.20.2\</methodlocation>
<!-- Methode van Gereedmelden in Tobias: 0 = GereedMelden (direct), 1 = GereedMeldenNaarSgWeb (via sgweb) -->
<methodegereedmelden>0</methodegereedmelden>
<!-- Aantal dagen in het verleden om open opdrachten op te halen -->
<opdr_past_days>1</opdr_past_days><!-- opdr_past_days is default 1 (alle opdrachten vanaf gisteren) -->
</tobias>
<ax>
<!-- URL van de AX webservice 'SupplierService' -->
<url>http://so-connect-t/SupplierService/SupplierService.svc/soapUI</url>
<!-- Aantal dagen in het verleden om open opdrachten op te halen -->
<opdr_past_days>1</opdr_past_days><!-- opdr_past_days is default 1 (alle opdrachten vanaf gisteren) -->
</ax>
<xtractor>
<folder>c:\xtractor\xml\</folder>
</xtractor>
<facilitor>
<!-- URL van de Facilitor CUST -->
<url>https://sglp.facilitorlabs.nl/</url>
<!-- API key van SYSTEM USER 'API_AX' voor alle API's -->
<apikey>ALXoEFzNuIiNlMmirQZIxYUDAOCxesWM</apikey>
</facilitor>
</ini>

410
ax/SRC/Common.js Normal file
View File

@@ -0,0 +1,410 @@
// --------------------------------------------------------------------------------------
// Common.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
// --------------------------------------------------------------------------------------
//var proxy = "127.0.0.1:8888"; // Voor debugging met Fiddler
// Helper functies
// 2013-11-13T07:00:00
function AX_or_Tobias(){
if (G_ax_url != "") return "A";
else {if (G_tobias_url != "") return "T";
else return "";
}
}
// v_type = 0 (JSon Plain text is returned)
// v_type = 1 (XMLresponse is returned)
function apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelope)
{
__Log("apiFCLT v_API: " + v_API,1);
__Log("apiFCLT v_APIKEY: " + v_APIKEY,1);
__Log("apiFCLT v_type: " + v_type,1);
__Log("apiFCLT v_soap_envelope: " + v_soap_envelope,1);
// var xmlhttp = new ActiveXObject("WinHTTP.WinHTTPRequest.5.1");
var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0");
SXH_PROXY_SET_PROXY = 2;
if (typeof proxy != "undefined" && proxy)
xmlhttp.setProxy(SXH_PROXY_SET_PROXY, proxy);
var xmlUrl = G_fclt_url + "?API=" + v_API + "&APIKEY=" + v_APIKEY;
xmlhttp.open("POST", xmlUrl, false);
xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8")
var msg = "" + v_req;
if (v_soap_envelope == 1){
msg = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'"
+ " xmlns:xsd='http://www.w3.org/2001/XMLSchema'"
+ " xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>"
+ " <soap:Body>"
+ v_req
+ " </soap:Body>"
+ "</soap:Envelope>";
}
if (msg != "")
{
xmlhttp.send(msg);
var txt = "";
if (xmlhttp.status == 200)
{
try
{
if (v_type == 1){
var result_data = xmlhttp.responseXML;
__Log("XML :" + result_data.xml, 2);
if (G_log_level == 3){
var l_xml = xmlhttp.responseBody;
WriteXML2File("Log/", v_API, "xml" , l_xml);
}
return result_data;
}
else
{
var txt = xmlhttp.responseText || "{}";
var result_data = eval("(" + txt + ")");
__Log("XML :" + result_data,2);
return result_data;
}
}
catch (e)
{
// Waarschijnlijk http-error terug gekregen
__Log("apiFCLT failed: " + e.description,1);
__Log(txt,1);
return "";
}
}
else
{
__Log("apiFCLT - HTTP <> 200",1);
__Log("Status: "+xmlhttp.status,1);
__Log(xmlhttp.responseText,1);
return "";
}
}
}
function apiAX (v_API, v_req, v_type)
{
var l_result;
if (AX_or_Tobias() == "A")
{
l_result = api2AX(G_ax_url, v_API, v_req, v_type);
}
if (AX_or_Tobias() == "T")
{
l_result = api2Tobias(G_tobias_url, v_API, v_req, v_type);
}
//if (G_ax_url != "")
//{
// l_result = api2AX(G_ax_url, v_API, v_req, v_type);
//}
//if (G_tobias_url != "")
//{
// l_result = api2Tobias(G_tobias_url, v_API, v_req, v_type);
//}
return l_result;
}
function api2AX (v_Url, v_API, v_req, v_type)
{
__Log("apiAX v_API: " + v_API,1);
__Log("apiAX v_type: " + v_type,1);
__Log("apiAX v_req: " + v_req,1);
var xmlhttp = new ActiveXObject("WinHTTP.WinHTTPRequest.5.1");
SXH_PROXY_SET_PROXY = 2;
if (typeof proxy != "undefined" && proxy)
xmlhttp.setProxy(SXH_PROXY_SET_PROXY, proxy);
xmlhttp.open("POST", v_Url, false);
xmlhttp.setRequestHeader("Content-Type", "application/soap+xml; charset=utf-8")
var v_msg = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "<s:Envelope xmlns:s=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:a=\"http://www.w3.org/2005/08/addressing\">"
+ "<s:Header>"
+ "<a:Action s:mustUnderstand=\"1\">http://tempuri.org/ISupplierService/" + v_API + "</a:Action>"
+ "<a:To s:mustUnderstand=\"1\">"+ v_Url + "</a:To>"
+ "</s:Header>"
+ "<s:Body>"
+ v_req
+ "</s:Body>"
+ "</s:Envelope>";
xmlhttp.send(v_msg);
if (xmlhttp.status == 200)
{ var txt = "";
try
{
switch (v_type)
{
case 0:
var txt = xmlhttp.responseText;
break;
case 1:
var txt = xmlhttp.responseBody;
break;
}
//var txt = xmlhttp.responseText || "{}";
//var txt = xmlhttp.responseBody;
////var result_data = eval("(" + txt + ")");
////return result_data;
__Log("XML :" + txt,2);
return txt;
}
catch (e)
{
// Waarschijnlijk http-error terug gekregen
__Log("apiAX failed: " + e.description,1);
__Log(txt,1);
return {};
}
}
else
{
__Log("apiAX - HTTP <> 200",1);
__Log("URL: " + v_Url,1);
__Log("Request: " + v_req,1);
__Log("Status: "+xmlhttp.status,1);
__Log(xmlhttp.responseText,1);
return ""
}
}
function api2Tobias (v_Url, v_API, v_req, v_type)
{
__Log("apiTobias v_API: " + v_API,1);
__Log("apiTobias v_type: " + v_type,1);
__Log("apiTobias v_req: " + v_req,1);
var xmlhttp = new ActiveXObject("WinHTTP.WinHTTPRequest.5.1");
SXH_PROXY_SET_PROXY = 2;
if (typeof proxy != "undefined" && proxy)
xmlhttp.setProxy(SXH_PROXY_SET_PROXY, proxy);
xmlhttp.open("POST", v_Url, false);
xmlhttp.setRequestHeader("Content-Type", "text/xml;charset=UTF-8");
var l_tobias_appserver = Read_Ini_Setting("tobias","appserver");
var l_methodlocation = Read_Ini_Setting("tobias","methodlocation");
var v_msg = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tob=\"http://sg.nl/TobiasConnect/\">"
+ "<soapenv:Header/>"
+ "<soapenv:Body>"
+ "<tob:RunMethod>"
+ " <!--Optional:-->"
+ " <tob:Methode>" + v_API + "</tob:Methode>"
+ " <!--Optional:-->"
+ " <tob:Parameters>"
+ " <!--Optional:-->"
+ " <tob:AppServer>" + l_tobias_appserver + "</tob:AppServer>"
+ " <!--Optional:-->"
+ " <tob:MethodLocation>" + l_methodlocation + "</tob:MethodLocation>"
+ " <!--Optional:-->"
+ " <tob:ParameterList>"
+ v_req
+ " </tob:ParameterList>"
+ " </tob:Parameters>"
+ "</tob:RunMethod>"
+ "</soapenv:Body>"
+ " </soapenv:Envelope>"
xmlhttp.send(v_msg);
if (xmlhttp.status == 200)
{ var txt = "";
try
{
switch (v_type)
{
case 0:
var txt = xmlhttp.responseText;
break;
case 1:
var txt = xmlhttp.responseBody;
break;
}
//var txt = xmlhttp.responseText || "{}";
//var txt = xmlhttp.responseBody;
////var result_data = eval("(" + txt + ")");
////return result_data;
__Log("XML :" + txt,2);
return txt;
}
catch (e)
{
// Waarschijnlijk http-error terug gekregen
__Log("apiAX failed: " + e.description,1);
__Log(txt,1);
return {};
}
}
else
{
__Log("apiAX - HTTP <> 200",1);
__Log("URL: " + v_Url,1);
__Log("Request: " + v_req,1);
__Log("Status: "+xmlhttp.status,1);
__Log(xmlhttp.responseText,1);
return ""
}
}
function WriteXML2File(p_path, p_filenaam, p_extension, p_xml) {
v_timestamp = displayTimeStamp();
var xml_filename = p_path + p_filenaam + v_timestamp + "." + p_extension;
oStream = new ActiveXObject("ADODB.Stream");
oStream.Open();
oStream.Type = 1; // adTypeBinary
oStream.Write(p_xml); // responseText geeft encoding problemen!
oStream.SaveToFile (xml_filename, 2); // adSaveCreateOverWrite
oStream.Close();
}
function WriteText2File(p_path, p_filenaam, p_extension, p_txt) {
__Log("WriteText2File - p_path: " + p_path,1);
__Log("WriteText2File - p_filenaam: " + p_filenaam,1);
__Log("WriteText2File - p_extension: " + p_extension,1);
__Log("WriteText2File - p_txt: " + p_txt,1);
v_timestamp = displayTimeStamp();
var xml_filename = p_path + p_filenaam + v_timestamp + "." + p_extension;
oStream = new ActiveXObject("ADODB.Stream");
oStream.Open();
//oStream.Type = 1; // adTypeBinary
oStream.WriteText(p_txt); // responseText geeft encoding problemen!
oStream.SaveToFile (xml_filename, 2); // adSaveCreateOverWrite
oStream.Close();
}
function displayTimeStamp() {
var str = "";
var currentTime = new Date();
var currentTime = new Date();
var jaar = currentTime.getFullYear();
var maand = currentTime.getMonth();
var dag = currentTime.getDate();
var hours = currentTime.getHours();
var minutes = currentTime.getMinutes();
var seconds = currentTime.getSeconds();
maand = maand + 1;
if (maand < 10) {
maand = "0" + maand
}
if (dag < 10) {
dag = "0" + dag
}
if (minutes < 10) {
minutes = "0" + minutes
}
if (seconds < 10) {
seconds = "0" + seconds
}
str += jaar + "-" + maand + "-" + dag + "T" + hours + "_" + minutes + "_" + seconds;
return str;
}
function xmltojsdate(datestamp)
{
var pattern = /^(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)$/;
var pieces = datestamp.match(pattern);
if(!pieces || pieces.length < 6)
return null;
return new Date(pieces[1], pieces[2]-1, pieces[3], pieces[4], pieces[5], pieces[6]);
}
function jsdatextoxml(dt)
{
return toDateString(dt) + "T" + toTimeString(dt);
}
function jsdatetosqls(jsDate)
{
return jsDate.getVarDate();
}
function padout(number) { return (number < 10) ? "0" + number : String(number); }
// Noot: altijd jaar vooraan, goed voor logfiles, niet bedoeld voor presentatie
function toDateString(jsDate)
{
return padout(jsDate.getFullYear()) + "-" + padout(jsDate.getMonth() + 1) + "-" + padout(jsDate.getDate());
}
function toTimeString(jsDate)
{
return padout(jsDate.getHours()) + ":" + padout(jsDate.getMinutes()) + ":" + padout(jsDate.getSeconds());
}
function __Log(s, level)
{ if (level == undefined) level=0;
if (G_log_level > 0 || level==0){
if (level <= G_log_level){
WScript.Echo(s);
var dt = new Date;
var logname = "Log/AxFacilitor_" + padout(dt.getFullYear()) + "_" + padout(dt.getMonth() + 1) + ".log";
var flog = fso.OpenTextFile(logname, 8 /* ForAppending */, true /* create */);
var tms = toDateString(new Date) + " " + toTimeString(new Date);
flog.WriteLine(tms + " " +s);
flog.Close();
}
}
}
// Values v_section = ax, facilitor of common.
// Values v_ini -> allerlei
function Read_Ini_Setting(v_section, v_ini){
var v_result = "";
try{
var l_xml_file = "AxFacilitor.xml";
l_xml=new ActiveXObject("Microsoft.XMLDOM");
l_xml.async=false;
l_xml.load(l_xml_file);
var l_node = "//ini/" + v_section + "/" + v_ini;
var v_result = l_xml.selectSingleNode(l_node).text;
return v_result;
}
catch (e)
{
__Log("Read_Ini_Setting failed: " + e.description,1);
return v_result;
}
}
//---------------------------------------------------------------------------------------------------------------------------------

38
ax/SRC/F_GetFacturen.js Normal file
View File

@@ -0,0 +1,38 @@
// --------------------------------------------------------------------------------------
// F_GetFacturen.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
// --------------------------------------------------------------------------------------
function F_GetFacturen()
{
var v_API = "FACT4AX_XTRACTOR";
var v_APIKEY = G_fclt_apikey;
var v_req = "<GetFACT4AX_XTRACTOR>" + "</GetFACT4AX_XTRACTOR>"
var v_type = 1; // xml
var v_soap_envelop = 1; //soap-envelop eromheen
var v_resp = apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
__Log("F_GetFacturen: " + v_resp.text,1);
// SPlitsen van XML's...
var i = 1;
var strQuery = "//batch/document[" + i + "]";
l_deelxml = v_resp.selectSingleNode(strQuery);
while (l_deelxml)
{
var XMLResult = "<?xml version=\"1.0\"?>"
+"<batch>"
+ l_deelxml.xml
+ "</batch>";
WriteText2File(G_ax_xtractorfolder, "xtractor[" + i + "]" , "xml" , XMLResult);
i = i + 1;
var strQuery = "//batch/document[" + i + "]";
l_deelxml = v_resp.selectSingleNode(strQuery);
}
}

View File

@@ -0,0 +1,75 @@
// --------------------------------------------------------------------------------------
// F_GetOpdrachtenAcceptedRefused.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
// --------------------------------------------------------------------------------------
function F_GetOpdrachten_AcceptRefuse()
{
var v_API = "ACCEPT_REFUSED_OPDR_4AX";
var v_APIKEY = G_fclt_apikey;
var v_req = "<GetACCEPT_REFUSED_OPDR_4AX>" + "</GetACCEPT_REFUSED_OPDR_4AX>"
var v_type = 1; // xml
var v_soap_envelop = 1; //soap-envelop eromheen
var v_resp = apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
var l_node;
__Log("F_GetOpdrachten_AcceptRefuse: " + v_resp.text,1);
// Uitlezen van XML's...
var i = 1;
var strQuery = "//xml/mld_ordr[" + i + "]";
var l_deelxml = v_resp.selectSingleNode(strQuery);
while (l_deelxml)
{
l_node = strQuery + "/ax_company_id";
var v_company_id = v_resp.selectSingleNode(l_node).text;
l_node = strQuery + "/mld_opdr_ordernr";
var v_taskId = v_resp.selectSingleNode(l_node).text;
var l_node = strQuery + "/mld_opdr_opmerking";
var v_extraInfo = v_resp.selectSingleNode(l_node).text;
var l_node = strQuery + "/fac_tracking_datum";
var v_date = v_resp.selectSingleNode(l_node).text;
var l_node = strQuery + "/fac_srtnotificatie_code";
var v_srtnotificatie_code = v_resp.selectSingleNode(l_node).text;
__Log("v_company_id: " + v_company_id,1);
__Log("v_taskId: " + v_taskId,1);
__Log("v_extraInfo: " + v_extraInfo,1);
__Log("v_date: " + v_date,1);
__Log("v_srtnotificatie_code: " + v_srtnotificatie_code,1);
if (v_srtnotificatie_code == 'ORDACP') {
if (AX_or_Tobias() == "A") {
A_AcceptServiceTask (v_company_id, v_taskId);
}
if (AX_or_Tobias() == "T") {
T_AcceptServiceTask (v_company_id, v_taskId, "Ja");
}
}
if (v_srtnotificatie_code == 'ORDCAN') {
if (AX_or_Tobias() == "A") {
A_RefuseServiceTask (v_company_id, v_taskId, v_extraInfo);
}
if (AX_or_Tobias() == "T") {
T_AcceptServiceTask (v_company_id, v_taskId, "Nee");
}
}
i = i + 1;
var strQuery = "//xml/mld_ordr[" + i + "]";
l_deelxml = v_resp.selectSingleNode(strQuery);
}
}

View File

@@ -0,0 +1,59 @@
// --------------------------------------------------------------------------------------
// F_GetOpdrachten_Afgemeld.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
// --------------------------------------------------------------------------------------
function F_GetOpdrachten_Afgemeld()
{
var v_API = "AFGEMELDE_OPDR_4AX";
var v_APIKEY = G_fclt_apikey;
var v_req = "<GetAFGEMELDE_OPDR_4AX>" + "</GetAFGEMELDE_OPDR_4AX>"
var v_type = 1; // xml
var v_soap_envelop = 1; //soap-envelop eromheen
var v_resp = apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
var l_node;
__Log("F_GetOpdrachten_Afgemeld: " + v_resp.text,1);
// Uitlezen van XML's...
var i = 1;
var strQuery = "//xml/mld_ordr[" + i + "]";
var l_deelxml = v_resp.selectSingleNode(strQuery);
while (l_deelxml)
{
l_node = strQuery + "/ax_company_id";
var v_company_id = v_resp.selectSingleNode(l_node).text;
l_node = strQuery + "/mld_opdr_ordernr";
var v_taskId = v_resp.selectSingleNode(l_node).text;
var l_node = strQuery + "/mld_opdr_opmerking";
var v_extraInfo = v_resp.selectSingleNode(l_node).text;
var l_node = strQuery + "/fac_tracking_datum";
var v_dateComplete = v_resp.selectSingleNode(l_node).text;
__Log("v_company_id: " + v_company_id,1);
__Log("v_taskId: " + v_taskId,1);
__Log("v_extraInfo: " + v_extraInfo,1);
__Log("v_dateComplete: " + v_dateComplete,1);
if (AX_or_Tobias() == "A") {
A_CompleteServiceTask (v_company_id, v_taskId, v_dateComplete);
}
if (AX_or_Tobias() == "T") {
T_CompleteServiceTask (v_company_id, v_taskId, v_dateComplete);
}
i = i + 1;
var strQuery = "//xml/mld_ordr[" + i + "]";
l_deelxml = v_resp.selectSingleNode(strQuery);
}
}

View File

@@ -0,0 +1,59 @@
// --------------------------------------------------------------------------------------
// F_GetOpdrachten_Gepland.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
// --------------------------------------------------------------------------------------
function F_GetOpdrachten_Gepland()
{
var v_API = "GEPLANDE_OPDR_4AX";
var v_APIKEY = G_fclt_apikey;
var v_req = "<GetGEPLANDE_OPDR_4AX>" + "</GetGEPLANDE_OPDR_4AX>"
var v_type = 1; // xml
var v_soap_envelop = 1; //soap-envelop eromheen
var v_resp = apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
var l_node;
__Log("F_GetOpdrachten_Gepland: " + v_resp.text,1);
// Uitlezen van XML's...
var i = 1;
var strQuery = "//xml/mld_ordr[" + i + "]";
var l_deelxml = v_resp.selectSingleNode(strQuery);
while (l_deelxml)
{
l_node = strQuery + "/ax_company_id";
var v_company_id = v_resp.selectSingleNode(l_node).text;
l_node = strQuery + "/mld_opdr_ordernr";
var v_taskId = v_resp.selectSingleNode(l_node).text;
var l_node = strQuery + "/mld_opdr_opmerking";
var v_extraInfo = v_resp.selectSingleNode(l_node).text;
var l_node = strQuery + "/mld_opdr_plandatum";
var v_date = v_resp.selectSingleNode(l_node).text;
__Log("v_company_id: " + v_company_id,1);
__Log("v_taskId: " + v_taskId,1);
__Log("v_extraInfo: " + v_extraInfo,1);
__Log("v_date: " + v_date,1);
if (AX_or_Tobias() == "A") {
A_PlanServiceTask (v_company_id, v_taskId, v_date);
}
if (AX_or_Tobias() == "T") {
T_PlanServiceTask (v_company_id, v_taskId, v_date);
}
i = i + 1;
var strQuery = "//xml/mld_ordr[" + i + "]";
l_deelxml = v_resp.selectSingleNode(strQuery);
}
}

View File

@@ -0,0 +1,56 @@
// --------------------------------------------------------------------------------------
// F_GetOpdrachten_Afgemeld.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
// --------------------------------------------------------------------------------------
function F_GetOpdrachten_Opmerking()
{
var v_API = "OPMERKING_OPDR_4AX";
var v_APIKEY = G_fclt_apikey;
var v_req = "<GetOPMERKING_OPDR_4AX>" + "</GetOPMERKING_OPDR_4AX>"
var v_type = 1; // xml
var v_soap_envelop = 1; //soap-envelop eromheen
var v_resp = apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
var l_node;
__Log("F_GetOpdrachten_Opmerking: " + v_resp.text,2);
// Uitlezen van XML's...
var i = 1;
var strQuery = "//xml/mld_ordr[" + i + "]";
var l_deelxml = v_resp.selectSingleNode(strQuery);
while (l_deelxml)
{
l_node = strQuery + "/ax_company_id";
var v_company_id = v_resp.selectSingleNode(l_node).text;
l_node = strQuery + "/mld_opdr_ordernr";
var v_taskId = v_resp.selectSingleNode(l_node).text;
var l_node = strQuery + "/mld_opdr_opmerking";
var v_extraInfo = v_resp.selectSingleNode(l_node).text;
__Log("v_company_id: " + v_company_id,1);
__Log("v_taskId: " + v_taskId,1);
__Log("v_extraInfo: " + v_extraInfo,1);
if (AX_or_Tobias() == "A") {
A_SetSupplierText(v_company_id, v_taskId, v_extraInfo);
}
if (AX_or_Tobias() == "T") {
T_SetSupplierText(v_company_id, v_taskId, v_extraInfo);
}
i = i + 1;
var strQuery = "//xml/mld_ordr[" + i + "]";
l_deelxml = v_resp.selectSingleNode(strQuery);
}
}

43
ax/SRC/F_GetSuppliers.js Normal file
View File

@@ -0,0 +1,43 @@
// --------------------------------------------------------------------------------------
// F_GetSuppliers.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
// --------------------------------------------------------------------------------------
function F_GetSuppliers()
{
var v_API = "AANNEMERS4AX";
var v_APIKEY = G_fclt_apikey;
var v_req = "<GetAANNEMERS4AX>" + "</GetAANNEMERS4AX>"
var v_type = 1; // xml
var v_soap_envelop = 1; //soap-envelop eromheen
//Resultaat van deze functie: array van l_ax_vendAccountNum
var l_result = [];
var v_resp = apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
__Log("F_GetSuppliers: " + v_resp.text,1);
// SPlitsen van XML's...
var i = 1;
var strQuery = "//xml/prs_bedrijf[" + i + "]";
var l_deelxml = v_resp.selectSingleNode(strQuery);
while (l_deelxml)
{
var l_node = strQuery + "/ax_vendAccountNum";
var l_ax_vendAccountNum = v_resp.selectSingleNode(l_node);
__Log("l_ax_vendAccountNum: " + l_ax_vendAccountNum.text,1);
l_result.push(l_ax_vendAccountNum.text);
i = i + 1;
var strQuery = "//xml/prs_bedrijf[" + i + "]";
l_deelxml = v_resp.selectSingleNode(strQuery);
}
return l_result;
}

21
ax/SRC/F_PutOpdrachten.js Normal file
View File

@@ -0,0 +1,21 @@
// --------------------------------------------------------------------------------------
// F_GetSuppliers.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
// --------------------------------------------------------------------------------------
function api_F_PutOpdrachten(v_xml, v_API)
{
var v_APIKEY = G_fclt_apikey;
var v_req = v_xml;
var v_type = 1; // xml
var v_soap_envelop = 0;
__Log(v_req,2);
apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
}

View File

@@ -0,0 +1,22 @@
// --------------------------------------------------------------------------------------
// F_GetSuppliers.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
// --------------------------------------------------------------------------------------
function F_PutReturnCodes(v_xml)
{
var v_API = "WEIGER_RETURNCODES";
var v_APIKEY = G_fclt_apikey;
var v_req = v_xml;
var v_type = 1; // xml
var v_soap_envelop = 0;
__Log(v_req,2);
apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
}

22
ax/SRC/F_PutSync.js Normal file
View File

@@ -0,0 +1,22 @@
// --------------------------------------------------------------------------------------
// F_PutSync.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
// Registreert de start of einde van de totale synchronisatie alle gegevens.
// --------------------------------------------------------------------------------------
// v_mode = 0 of 1: 0 = start sync, 1 = einde sync
function F_PutSync(v_mode)
{
var v_API = "AX_SYNC";
var v_APIKEY = G_fclt_apikey;
var v_req = "<axsync><mode>" + v_mode + "</mode></axsync>"
var v_type = 1; // xml
var v_soap_envelop = 0;
__Log(v_req,2);
apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
}

View File

@@ -0,0 +1,33 @@
// --------------------------------------------------------------------------------------
// T_AcceptServiceTask.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
// v_company_id is hier dummy, puur uit orthogonaliteit met de AX functie.
// v_bonId is hier de bonid, uit het veld mld_opdr_ordernr.
// v_ja_nee heeft waarde Ja (= geaccepteerd) of Nee (= geweigerd).
function T_AcceptServiceTask(v_company_id, v_bonId, v_ja_nee)
{
var v_API = "SetBonAcceptatie";
var v_req = "<tob:string>BonId=" + v_bonId + "</tob:string>"
+ "<tob:string>BonStatus=" + "Acceptatie" + "</tob:string>"
+ "<tob:string>Geaccepteerd=" + v_ja_nee + "</tob:string>"
var v_type = 0;
var v_resp = apiAX(v_API, v_req, v_type);
//if (v_type == 1 && v_resp != "")
// {
// oStream = new ActiveXObject("ADODB.Stream");
// oStream.Open();
// oStream.Type = 1; // adTypeBinary
// oStream.Write(v_resp); // responseText geeft encoding problemen!
// oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
// oStream.Close();
// }
return v_resp;
}

View File

@@ -0,0 +1,45 @@
// --------------------------------------------------------------------------------------
// T_CompleteServiceTask.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
// v_company_id is hier dummy, puur uit orthogonaliteit met de AX functie.
// v_bonId is hier de bonid, uit het veld mld_opdr_ordernr.
// v_dateComplete is de plandatum en heeft formaat yyyy-mm-ddTuu:mm:ss
function T_CompleteServiceTask (v_company_id, v_bonId, v_dateComplete)
{
// Je kunt in Tobias via een setting het gereedmelden direct in Tobias doen (default), of via sgweb ??
// Dit wordt in AXFacilitor.xml bepaalt via de setting "methodegereedmelden":
// 0 (default) = GereedMelden
// 1 = GereedMeldenNaarSgWeb
var l_method_gereed = Read_Ini_Setting("tobias","methodegereedmelden");
// default...
var v_API = "GereedMelden";
if (l_method_gereed == "1")
{v_API = "GereedMeldenNaarSgWeb";}
var v_req = "<tob:string>BonId=" + v_bonId + "</tob:string>"
+ "<tob:string>DatumGereed=" + v_dateComplete + "</tob:string>"
+ "<tob:string>Bewerking=" + "Gereed" + "</tob:string>"
var v_type = 0;
var v_resp = apiAX(v_API, v_req, v_type);
if (v_type == 1 && v_resp != "")
{
oStream = new ActiveXObject("ADODB.Stream");
oStream.Open();
oStream.Type = 1; // adTypeBinary
oStream.Write(v_resp); // responseText geeft encoding problemen!
oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
oStream.Close();
}
return v_resp;
}

61
ax/SRC/T_GetOpdrachten.js Normal file
View File

@@ -0,0 +1,61 @@
// --------------------------------------------------------------------------------------
// T_GetOpdrachten.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
function T_GetOpdrachten()
{
var v_status_code = "o"; // open
var l_currentTime = new Date();
// l_aantal_dagen staat default/normaal op 1 (voor gisteren), dus alle opdrachten vanaf gisteren. Voor testdoeleinden kan dit wat opgerekt worden...
// var l_aantal_dagen = 1;
var l_aantal_dagen = Read_Ini_Setting("tobias","opdr_past_days");
var l_yesterday = new Date((new Date()).valueOf() - l_aantal_dagen*1000*60*60*24);
var v_datum_vanaf = jsdatextoxml(l_yesterday);
var v_datum_tm = jsdatextoxml(l_currentTime);
var v_xml_opdrachten;
// Haal de aannemers (feitelijk de Tobias/AX-aannemer-id's) uit Facilitor die geregistreerd zijn voor het aannemersportaal.
// Het aannemer-id van Tobias/AX wordt uit Facilitor uitgelezen, en per aannemer wordt de webservice om de opdrachten van die aannemer op te halen, aangeroepen...
l_suppl_array = F_GetSuppliers();
for (var i = 0; i < l_suppl_array.length; i++){
v_supplier_id = l_suppl_array[i];
// Ophalen van de opdrachten voor aannemer 'v_supplier_id' vanaf (default) gisteren tot en met nu.
v_xml_opdrachten = T_GetOpdrachten_van_Aannemer(v_supplier_id, v_status_code, v_datum_vanaf, v_datum_tm);
// Wegschrijven van de opdrachten (voor aannemer 'v_supplier_id') naar Facilitor....
api_F_PutOpdrachten(v_xml_opdrachten, "TOBIAS_OPDRACHTEN");
}
}
function T_GetOpdrachten_van_Aannemer(v_supplier_id, v_status_code, v_datum_vanaf, v_datum_tm)
{
var v_API = "GetBonnen";
var v_req = "<tob:string>CrediteurNummer=" + v_supplier_id + "</tob:string>"
+ "<tob:string>BonStatus=" + v_status_code + "</tob:string>"
+ "<tob:string>BonDatumOpdrachtVan=" + v_datum_vanaf + "</tob:string>"
var v_type = 0;
var v_resp = apiAX(v_API, v_req, v_type);
//if (v_type == 1 && v_resp != "")
// {
// oStream = new ActiveXObject("ADODB.Stream");
// oStream.Open();
// oStream.Type = 1; // adTypeBinary
// oStream.Write(v_resp); // responseText geeft encoding problemen!
// oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
// oStream.Close();
// }
return v_resp;
}

View File

@@ -0,0 +1,53 @@
// --------------------------------------------------------------------------------------
// T_PlanServiceTask.js
// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2014)
//
// v_company_id is hier dummy, puur uit orthogonaliteit met de AX functie.
// v_bonId is hier de bonid, uit het veld mld_opdr_ordernr.
// v_plandate is de plandatum en heeft formaat yyyy-mm-ddTuu:mm:ss
function T_PlanServiceTask(v_company_id, v_bonId, v_plandate)
{
var l_pos_T;
var l_date;
var l_time;
l_pos_T = v_plandate.indexOf("T");
if (l_pos_T >= 0){
l_date = v_plandate.substr(0, l_pos_T);
l_time = v_plandate.substr(l_pos_T + 1);
}
else {
l_date = v_plandate;
l_time = "";
}
var v_API = "SetPlanDatum";
var v_req = "<tob:string>BonId=" + v_bonId + "</tob:string>"
+ "<tob:string>BonStatus=" + "AannemerPlanning" + "</tob:string>"
+ "<tob:string>PlanDatum=" + l_date + "</tob:string>"
if (l_time != ""){
v_req = v_req + "<tob:string>PlanTijd=" + l_time + "</tob:string>"
}
var v_type = 0;
var v_resp = apiAX(v_API, v_req, v_type);
//if (v_type == 1 && v_resp != "")
// {
// oStream = new ActiveXObject("ADODB.Stream");
// oStream.Open();
// oStream.Type = 1; // adTypeBinary
// oStream.Write(v_resp); // responseText geeft encoding problemen!
// oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
// oStream.Close();
// }
return v_resp;
}

View File

@@ -0,0 +1,31 @@
// --------------------------------------------------------------------------------------
// T_SetSupplierText.js
// Copyright 2015 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
// Written by MB (2015)
//
// v_company_id is hier dummy, puur uit orthogonaliteit met de AX functie.
// v_bonId is hier de bonid, uit het veld mld_opdr_ordernr.
function T_SetSupplierText(v_company_id, v_bonId, v_extraInfo)
{
var v_API = "SetBonInfo";
var v_req = "<tob:string>BonId=" + v_bonId + "</tob:string>"
+ "<tob:string>BonStatus=" + "Informatie" + "</tob:string>"
+ "<tob:string>BonInfo=" + v_extraInfo + "</tob:string>"
var v_type = 0;
var v_resp = apiAX(v_API, v_req, v_type);
if (v_type == 1 && v_resp != "")
{
oStream = new ActiveXObject("ADODB.Stream");
oStream.Open();
oStream.Type = 1; // adTypeBinary
oStream.Write(v_resp); // responseText geeft encoding problemen!
oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
oStream.Close();
}
return v_resp;
}