Θόδωρε,
Από τη στιγμή που τα data καταχωρούνται σε βάση, μπορείς να
χρησιμοποιήσεις import script.
Σου παραθέτω ένα script που διαβάζει τα δεδομένα από μια βάση
Mysql(τηλεφωνικό κέντρο) και εισάγει στο S1 ενέργειες.
Επίσης ενημερώνει τη βάση του τηλεφωνικού κέντρου αν η εισαγωγή της
ενέργειας είναι επιτυχημένη ή όχι.
Το script είναι το εξής:
//----------------------------------------------------------------------------------------------------------------------
// help <form script>
// TableName = OriginalTableName; DomainFieldName {SoDtype or
CustType}; DomainFieldValue {12,51}; LocateStr; Caption; FieldType
{0,1,2,3=Sql, Report, Function}; 1 to 1 relation
// panelname = PanelType; Caption; Level; Info;
// filename = DataType; DisplaySize; Require; Visible; ReadOnly;
Caption; Editor; TblEditor; Forced; Default
// datatype = 1=ftString, 2=ftSmallint, 3=ftInteger, 4=ftWord,
6=ftFloat, 11=ftDateTime, 16=ftMemo
form {
[TABLES]
ImpTable=;;;;Master;3;0
[ImpTable]
vImpOk=2;15;1;1;0;Επιβεβαίωση εκτέλεσης;$Y;;;1
vTrndate=11;25;1;1;0;Hμερ/νία
Παραστατικού;;;:X.SYS.LOGINDATE;:X.SYS.LOGINDATE
vSeries=2;15;1;1;0;Σειρά;SERIES(W[SOSOURCE=2021]);;;
vImpMess=16;64000;0;1;1;Μηνύματα μεταφοράς...;;;;
[PANELS]
PANEL11=0;;0;50,G10,N
PANEL12=0;;0;50,G10,N
PANEL13=4;Μηνύματα μεταφοράς...;0;100,G10,N,L3
[PANEL11]
ImpTable.vImpOk
[PANEL12]
ImpTable.vTrndate
ImpTable.vSeries
[PANEL13]
ImpTable.vImpMess
}
var
vDD, vMM, vYY, vd;
Import ImpSoAction(SoAction) into 'SOACTION,IMPORT:1' {
SoAction SoAction {
vd = DateOfDateTime(SoAction.TRNDATE);
SERIES = :ImpTable.vSeries;
TRNDATE = vd;
BRANCH = :X.SYS.BRANCH;
FROMDATE = SoAction.TRNDATE;
FINALDATE = SoAction.TRNDATE;
}
}
connect DBDriver DocData {
connect( 'XADODrv.bpl', 'CUSTOM', 'Provider=MSDASQL.1;Persist
Security Info=False;Data Source=cpi' );
SoAction = select calldate as trndate
,duration as duration
,uniqueid as uniqueid
,impfld as impfld
from cdr_bak
where impfld=0;
}
Connect Xplorer XplorerData {
connect();
}
var
x, y, vCnt, vTot, vRow, vRowCancel, UserResp, vMess, vMessMemo,
vFinDoc;
{
if (:ImpTable.vImpOk=1) {
vTot=0;
vRow=0;
vRowCancel=0;
vMess='';
vMessMemo='';
fetch SoAction vTot = vTot + 1;
if (vTot=0)
{
UserResp=SendResponse( vTot, 0, 0, 'Μεταφορά
παραστατικών......',
'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;RESULTS.LABELTEXT' );
vMessMemo=vMessMemo+'Δεν υπάρχουν εγγραφές προς
μεταφορά.....'+#10+#10;
UserResp=SendResponse(vMessMemo,'ImpTable.vImpMess');
}
else
{
UserResp=SendResponse( vTot, 0, 0, 'Μεταφορά
παραστατικών......',
'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;RESULTS.LABELTEXT' );
vMessMemo=vMessMemo+'Έναρξη Εργασίας.....'+#10+#10;
UserResp=SendResponse(vMessMemo,'ImpTable.vImpMess');
}
x=StartTrans('XplorerData');
fetch SoAction {
ImpSoAction(SoAction);
if (ImportError=0)
{
vRow=vRow+1;
vFindoc=ResultNum;
y=ExecSql('DocData','update cdr_bak set impfld=1 where
uniqueid='+VarToStr(SoAction.uniqueid)+' and impfld=0',null);
x=GetQueryResults('XplorerData','select soactioncode
from SOACTION where SOACTION=:1',VarArray(vFindoc,1));
vMessMemo=vMessMemo+'Έγινε εισαγωγή της ενέργειας:
'+VarToStr(x)+#10;
UserResp=SendResponse(vMessMemo,'ImpTable.vImpMess');
x = Commit('XplorerData');
}
else
{
vRowCancel=vRowCancel+1;
vMessMemo=vMessMemo+'Απέτυχε η εισαγωγή ενέργειας'+
#10;
UserResp=SendResponse(vMessMemo,'ImpTable.vImpMess');
x=Rollback('XplorerData');
}
UserResp=SendResponse(vRow, vRowCancel,
'RESULTS.CURREC;RESULTS.CANREC');
} // End fetch
vMessMemo=vMessMemo+'Τέλος Μεταφοράς...'+#10;
UserResp=SendResponse(vRow, vRowCancel, vMessMemo, 'Τέλος
μεταφοράς ............',
'RESULTS.CURREC;RESULTS.CANREC;ImpTable.vImpMess;RESULTS.LABELTEXT');
}
else
{
UserResp=SendResponse( 0,0,0,'Επιλέξτε επιβεβαίωση (Ναί)......',
'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;RESULTS.LABELTEXT');
vMessMemo = vMessMemo + 'Απαιτείται επιβεβαίωση εργασίας για την
εισαγωγή των ενεργειών.'+#10+#10;
UserResp=SendResponse(vMessMemo,'ImpTable.vImpMess');
}
} // End Script