1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537
|
/* Includes files */
/******************/
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <ctype.h>
#include <stdlib.h>
/* Include the SQL communication Area */
#include <sqlca.h>
#include <ss10_common.h>
#include <ss10_common_db.h>
#include <ss10_SAP_extract.h>
/* Constantes variables */
/************************/
#define kiNB_LINES 500
/*------------------------------------------------*/
/* Macro for finding date plan event */
/* */
/* - APC restriction Table name where the select */
/* has been perform */
/* - Planning event code wanted */
/* - Local Host variable restriction name */
/* - Code Table */
/* - Date type (ENTR : entry or DELI : delivery) */
/*------------------------------------------------*/
#define fREAD_PLAN_EVENT(Table, CodePlan, Var, Type) \
{\
int bFound = 0;\
int iRang = 0;\
for(iRang = 0; iRang < kiNBR_PLANEVENTS; iRang++) \
{\
if(ind_C_PLAN_EVENT_##Table[iRang] != -1 &&\
strncmp((char *)hvC_PLAN_EVENT_##Table[iRang].arr, CodePlan, hvC_PLAN_EVENT_##Table[iRang].len) == 0)\
{\
bTrouve = 1;\
bFound = 1;\
break;\
}\
}\
\
if(bFound)\
{\
if(strcmp(Type, "ENTR") == 0)\
fSetHv(&hvD##Var, &ind_D##Var,\
fGetHv(&hvD_ENTR_##Table[iRang], &ind_D_ENTR_##Table[iRang]));\
else\
fSetHv(&hvD##Var, &ind_D##Var,\
fGetHv(&hvD_DELI_##Table[iRang], &ind_D_DELI_##Table[iRang]));\
}\
}
/* Globals variables */
/*********************/
static char gacTemp[500];
/* SQL declare section */
EXEC SQL BEGIN DECLARE SECTION;
/*--- RECORD CIN ---*/
VARCHAR hvPGM[kiNB_LINES][kiPGM + 1];
VARCHAR hvPGM_current[kiPGM + 1];
VARCHAR hvMSN[kiNB_LINES][kiMSN + 1];
VARCHAR hvMSN_current[kiMSN + 1];
VARCHAR hvCUST[kiNB_LINES][kiCUST + 1];
VARCHAR hvCUST_RNK[kiNB_LINES][kiCUST_RNK + 1];
VARCHAR hvCONT_RNK[kiNB_LINES][kiCONT_RNK + 1];
VARCHAR hvMODEL[kiNB_LINES][kiMODEL + 1];
VARCHAR hvMODEL_current[kiMODEL + 1];
VARCHAR hvINDVAR[kiNB_LINES][kiINDVAR + 1];
VARCHAR hvSERRNK[kiNB_LINES][kiSERRNK + 1];
VARCHAR hvSERRNK_current[kiSERRNK + 1];
VARCHAR hvSTD_RNK[kiNB_LINES][kiSTD_RNK + 1];
VARCHAR hvVERS_CUST[kiNB_LINES][kiVERS_CUST + 1];
VARCHAR hvVERS_RNK[kiNB_LINES][kiVERS_RNK + 1];
VARCHAR hvDFOKKER[kiDFOKKER + 1];
VARCHAR hvDSTATION40[kiNB_LINES][kiDSTATION40 + 1];
VARCHAR hvDALENIA[kiDALENIA + 1];
VARCHAR hvDTHFF[kiNB_LINES][kiDTHFF + 1];
VARCHAR hvDINDUST[kiNB_LINES][kiDINDUST + 1];
VARCHAR hvDCUSACC[kiNB_LINES][kiDCUSACC + 1];
VARCHAR hvDENGINE[kiDENGINE + 1];
VARCHAR hvDNACELLE[kiDNACELLE + 1];
VARCHAR hvENGTYPE[kiNB_LINES][kiENGTYPE + 1];
VARCHAR hvACTLIV[kiNB_LINES][kiACTLIV + 1];
VARCHAR hvACDLIV[kiNB_LINES][kiACDLIV + 1];
VARCHAR hvACSTAT[kiNB_LINES][kiACSTAT + 1];
VARCHAR hvM_PROJ_SER[kiNB_LINES][kiM_PROJ_SER + 1];
VARCHAR hvM_PROJ_SER_current[kiM_PROJ_SER + 1];
VARCHAR hvC_COAC[kiNB_LINES][kiC_COAC + 1];
VARCHAR hvC_COAC_current[kiC_COAC + 1];
VARCHAR hvLMODEL[kiLMODEL + 1];
VARCHAR hvSERNAM[kiSERNAM + 1];
VARCHAR hvVERBASE[kiVERBASE + 1];
VARCHAR hvBATCH[kiBATCH + 1];
/* Arrays of hosts variables for Planning events */
VARCHAR hvC_PLAN_EVENT_ACHV[kiNBR_PLANEVENTS][kiC_PLAN_EVENT + 1];
VARCHAR hvD_ENTR_ACHV[kiNBR_PLANEVENTS][kiD_ENTR + 1];
VARCHAR hvD_DELI_ACHV[kiNBR_PLANEVENTS][kiD_DELI + 1];
VARCHAR hvC_PLAN_EVENT_FIX[kiNBR_PLANEVENTS][kiC_PLAN_EVENT + 1];
VARCHAR hvD_ENTR_FIX[kiNBR_PLANEVENTS][kiD_ENTR + 1];
VARCHAR hvD_DELI_FIX[kiNBR_PLANEVENTS][kiD_DELI + 1];
VARCHAR hvC_PLAN_EVENT_THEO[kiNBR_PLANEVENTS][kiC_PLAN_EVENT + 1];
VARCHAR hvD_ENTR_THEO[kiNBR_PLANEVENTS][kiD_ENTR + 1];
VARCHAR hvD_DELI_THEO[kiNBR_PLANEVENTS][kiD_DELI + 1];
/* Declare indicators */
/*--- RECORD SAP ---*/
short ind_PGM[kiNB_LINES];
short ind_PGM_current;
short ind_MSN[kiNB_LINES];
short ind_MSN_current;
short ind_CUST[kiNB_LINES];
short ind_CUST_RNK[kiNB_LINES];
short ind_CONT_RNK[kiNB_LINES];
short ind_MODEL[kiNB_LINES];
short ind_MODEL_current;
short ind_INDVAR[kiNB_LINES];
short ind_SERRNK[kiNB_LINES];
short ind_SERRNK_current;
short ind_STD_RNK[kiNB_LINES];
short ind_VERS_CUST[kiNB_LINES];
short ind_VERS_RNK[kiNB_LINES];
short ind_DFOKKER;
short ind_DSTATION40[kiNB_LINES];
short ind_DALENIA;
short ind_DTHFF[kiNB_LINES];
short ind_DINDUST[kiNB_LINES];
short ind_DCUSACC[kiNB_LINES];
short ind_DENGINE;
short ind_DNACELLE;
short ind_ENGTYPE[kiNB_LINES];
short ind_ACTLIV[kiNB_LINES];
short ind_ACDLIV[kiNB_LINES];
short ind_ACSTAT[kiNB_LINES];
short ind_M_PROJ_SER[kiNB_LINES];
short ind_M_PROJ_SER_current;
short ind_C_COAC[kiNB_LINES];
short ind_C_COAC_current;
short ind_LMODEL;
short ind_SERNAM;
short ind_VERBASE;
short ind_BATCH;
/* For planning events */
short ind_C_PLAN_EVENT_ACHV[kiNBR_PLANEVENTS];
short ind_D_ENTR_ACHV[kiNBR_PLANEVENTS];
short ind_D_DELI_ACHV[kiNBR_PLANEVENTS];
short ind_C_PLAN_EVENT_FIX[kiNBR_PLANEVENTS];
short ind_D_ENTR_FIX[kiNBR_PLANEVENTS];
short ind_D_DELI_FIX[kiNBR_PLANEVENTS];
short ind_C_PLAN_EVENT_THEO[kiNBR_PLANEVENTS];
short ind_D_ENTR_THEO[kiNBR_PLANEVENTS];
short ind_D_DELI_THEO[kiNBR_PLANEVENTS];
EXEC SQL END DECLARE SECTION;
/*--------------------------------------------------------------*/
/* */
/* Function : fPlanningEvents */
/* */
/* Description : Planning event code and entry/delivery */
/* assignment */
/* */
/*--------------------------------------------------------------*/
int fPlanningEvents(pcErrOra)
char *pcErrOra;
{
int iRang;
/* Init tableau de resultat */
for(iRang = 0; iRang < kiNBR_PLANEVENTS; iRang++)
{
ind_C_PLAN_EVENT_ACHV[iRang] = -1;
ind_D_ENTR_ACHV[iRang] = -1;
ind_D_DELI_ACHV[iRang] = -1;
ind_C_PLAN_EVENT_FIX[iRang] = -1;
ind_D_ENTR_FIX[iRang] = -1;
ind_D_DELI_FIX[iRang] = -1;
ind_C_PLAN_EVENT_THEO[iRang] = -1;
ind_D_ENTR_THEO[iRang] = -1;
ind_D_DELI_THEO[iRang] = -1;
}
EXEC SQL WHENEVER SQLERROR GOTO ERR;
EXEC SQL WHENEVER NOT FOUND GOTO STEP2;
EXEC SQL SELECT C_PLAN_EVENT,
TO_CHAR(D_ACHVDATE_ENTR, 'YYYY-MM-DD'),
TO_CHAR(D_ACHVDATE_DELI, 'YYYY-MM-DD')
INTO :hvC_PLAN_EVENT_ACHV:ind_C_PLAN_EVENT_ACHV,
:hvD_ENTR_ACHV:ind_D_ENTR_ACHV,
:hvD_DELI_ACHV:ind_D_DELI_ACHV
FROM SS10_ACHVDATE
WHERE C_PROG = :hvPGM_current
AND C_APCMSN = :hvMSN_current
AND C_PLAN_EVENT in ('TR-FokkerTLS', 'AV-S14A',
'EngineAvail', 'AV-PropSystm');
STEP2:
EXEC SQL WHENEVER NOT FOUND GOTO STEP3;
EXEC SQL SELECT C_PLAN_EVENT,
TO_CHAR(D_FIXDATE_ENTR, 'YYYY-MM-DD'),
TO_CHAR(D_FIXDATE_DELI, 'YYYY-MM-DD')
INTO :hvC_PLAN_EVENT_FIX:ind_C_PLAN_EVENT_FIX,
:hvD_ENTR_FIX:ind_D_ENTR_FIX,
:hvD_DELI_FIX:ind_D_DELI_FIX
FROM SS10_FIXDATE
WHERE C_PROG = :hvPGM_current
AND C_APCMSN = :hvMSN_current
AND C_PLAN_EVENT in ('TR-FokkerTLS', 'AV-S14A',
'EngineAvail', 'AV-PropSystm');
STEP3:
EXEC SQL WHENEVER NOT FOUND CONTINUE;
EXEC SQL SELECT C_PLAN_EVENT,
TO_CHAR(D_THEODATE_ENTR, 'YYYY-MM-DD'),
TO_CHAR(D_THEODATE_DELI, 'YYYY-MM-DD')
INTO :hvC_PLAN_EVENT_THEO:ind_C_PLAN_EVENT_THEO,
:hvD_ENTR_THEO:ind_D_ENTR_THEO,
:hvD_DELI_THEO:ind_D_DELI_THEO
FROM SS10_THEODATE
WHERE C_PROG = :hvPGM_current
AND C_APCMSN = :hvMSN_current
AND C_PLAN_EVENT in ('TR-FokkerTLS', 'AV-S14A',
'EngineAvail', 'AV-PropSystm');
return(0);
ERR:
if(sqlca.sqlcode < 0)
{
sprintf(pcErrOra, "%*s %s", sqlca.sqlerrm.sqlerrml,
sqlca.sqlerrm.sqlerrmc,
"(fPlanningEvents)");
return(sqlca.sqlcode);
}
else return(0);
}
/*--------------------------------------------------------------*/
/* */
/* Function : fExtractSAP */
/* */
/* Description : CIN citter extraction loop */
/* */
/*--------------------------------------------------------------*/
int fExtractSAP(pcErrOra, pfResult, pcDebug)
char *pcErrOra; /* Error message */
FILE *pfResult; /* Id of result file */
char *pcDebug; /* Debug variable */
{
int iRangInv;
int iErr = 0;
int bTrouve = 0;
RECORD sRecord;
SAP *psSAP;
long iLine = 0;
long iLineCurrent = 0;
long iLineBefore = 0;
time_t sDate;
EXEC SQL WHENEVER SQLERROR GOTO ERR;
EXEC SQL WHENEVER NOTFOUND CONTINUE;
/* Cursor SS10_SAP */
EXEC SQL DECLARE CursSAP CURSOR FOR
SELECT a.C_PROG_M58,
a.C_MSN_RNK_M58,
a.C_THIRD,
b.C_COAC_CUST_RNK,
b.C_COAC_RANK_CNT,
a.M_MODEL_AIPL,
a.C_SER_RNK_M210,
a.C_INDVAR_RNK_M210,
a.C_STD_RNK_M56,
a.C_VERSION_RNK_M106,
a.C_CUSTAC_RNK_M102,
TO_CHAR(a.D_STATION_40, 'YYYY-MM-DD'),
TO_CHAR(a.D_FIRST_FLIGHT, 'YYYY-MM-DD'),
TO_CHAR(a.D_IND_DEL, 'YYYY-MM-DD'),
TO_CHAR(a.D_CUST_ACCEPT, 'YYYY-MM-DD'),
a.C_ENG,
TO_CHAR(a.D_COAC_TRANSF_TITL, 'YYYY-MM-DD'),
TO_CHAR(a.D_COAC_DELI, 'YYYY-MM-DD'),
a.M_PROJ_SER,
a.C_COAC
FROM SS10_AC_CONTRACTUAL a, SS10_COAC b
WHERE a.C_PROG_M58 IS NOT NULL
AND a.C_MSN_RNK_M58 IS NOT NULL
AND a.D_COAC_CANC IS NULL
AND b.C_COAC = a.C_COAC
ORDER BY a.C_PROG_M58, a.C_MSN_RNK_M58;
/*=========================================================================*/
/*= FILL RECORD SAP =*/
/*=========================================================================*/
psSAP = (SAP *) &sRecord;
memset(&sRecord, ' ', sizeof(RECORD));
EXEC SQL OPEN CursSAP;
if(pcDebug){
time(&sDate);
printf("=>Entre dans la boucle SAP at %s", ctime(&sDate));
}
iLineCurrent = kiNB_LINES;
while(iLineCurrent == kiNB_LINES)
{
EXEC SQL FETCH CursSAP INTO
:hvPGM:ind_PGM,
:hvMSN:ind_MSN,
:hvCUST:ind_CUST,
:hvCUST_RNK:ind_CUST_RNK,
:hvCONT_RNK:ind_CONT_RNK,
:hvMODEL:ind_MODEL,
:hvSERRNK:ind_SERRNK,
:hvINDVAR:ind_INDVAR,
:hvSTD_RNK:ind_STD_RNK,
:hvVERS_CUST:ind_VERS_CUST,
:hvVERS_RNK:ind_VERS_RNK,
:hvDSTATION40:ind_DSTATION40,
:hvDTHFF:ind_DTHFF,
:hvDINDUST:ind_DINDUST,
:hvDCUSACC:ind_DCUSACC,
:hvENGTYPE:ind_ENGTYPE,
:hvACTLIV:ind_ACTLIV,
:hvACDLIV:ind_ACDLIV,
:hvM_PROJ_SER:ind_M_PROJ_SER,
:hvC_COAC:ind_C_COAC;
/* Init Var */
iLineCurrent = sqlca.sqlerrd[2] - iLineBefore;
iLineBefore = sqlca.sqlerrd[2];
iLine = 0;
while(iLine < iLineCurrent)
{
/* Initialization of loop dependant fields whith blanks */
memset(&sRecord.DATA_RCD, ' ', sizeof(sRecord.DATA_RCD));
SETHV(PGM_current, GETHV(PGM[iLine]));
SETHV(MSN_current, GETHV(MSN[iLine]));
SETHV(M_PROJ_SER_current, GETHV(M_PROJ_SER[iLine]));
SETHV(C_COAC_current, GETHV(C_COAC[iLine]));
SETHV(MODEL_current, GETHV(MODEL[iLine]));
SETHV(SERRNK_current, GETHV(SERRNK[iLine]));
SETHV(DFOKKER, "");
SETHV(DALENIA, "");
SETHV(DENGINE, "");
SETHV(DNACELLE, "");
SETHV(LMODEL, "");
SETHV(SERNAM, "");
SETHV(VERBASE, "");
SETHV(BATCH, "");
/*--- PROJ info ---*/
EXEC SQL SELECT L_PROJ_NAM
INTO :hvVERBASE:ind_VERBASE
FROM SS10_PROJ
WHERE C_PROJ = :hvM_PROJ_SER_current:ind_M_PROJ_SER_current;
/*--- AIPL info ---*/
EXEC SQL SELECT C_AIPL_BTCH_P
INTO :hvBATCH:ind_BATCH
FROM SS10_AIPL
WHERE C_AIPL_HIST = 'N'
AND M_COAC_AIPL = :hvC_COAC_current:ind_C_COAC_current;
/*--- MODEL info ---*/
EXEC SQL SELECT L_MODEL
INTO :hvLMODEL:ind_LMODEL
FROM SS10_MODEL
WHERE C_MODEL = :hvMODEL_current:ind_MODEL_current;
/*--- SER info ---*/
EXEC SQL SELECT C_SER_CODE_2
INTO :hvSERNAM:ind_SERNAM
FROM SS10_SER
WHERE C_PROG = :hvPGM_current:ind_PGM_current
AND C_SER_RNK = :hvSERRNK_current:ind_SERRNK_current;
/*--- Calcul PLANNING EVENTS DATES ---*/
if((iErr = fPlanningEvents(pcErrOra) != 0)) return (iErr);
/* Fokker */
bTrouve = 0;
if (hvM_PROJ_SER[iLine].arr[0] == 'A' ||
hvM_PROJ_SER[iLine].arr[0] == 'B' ||
hvM_PROJ_SER[iLine].arr[0] == 'C')
{
fREAD_PLAN_EVENT(ACHV, "TR-FokkerTLS", FOKKER, "ENTR");
if(!bTrouve)
{
fREAD_PLAN_EVENT(FIX, "TR-FokkerTLS", FOKKER, "ENTR");
}
if(!bTrouve)
{
fREAD_PLAN_EVENT(THEO, "TR-FokkerTLS", FOKKER, "ENTR");
}
}
/* Section 14A availability planning event */
bTrouve = 0;
if (hvM_PROJ_SER[iLine].arr[0] == 'D' ||
hvM_PROJ_SER[iLine].arr[0] == 'E' ||
hvM_PROJ_SER[iLine].arr[0] == 'J')
{
fREAD_PLAN_EVENT(ACHV, "AV-S14A", ALENIA, "ENTR");
if(!bTrouve)
{
fREAD_PLAN_EVENT(FIX, "AV-S14A", ALENIA, "ENTR");
}
if(!bTrouve)
{
fREAD_PLAN_EVENT(THEO, "AV-S14A", ALENIA, "ENTR");
}
}
/* Engine Availability planning event */
bTrouve = 0;
if (hvM_PROJ_SER[iLine].arr[0] == 'D' ||
hvM_PROJ_SER[iLine].arr[0] == 'E' ||
hvM_PROJ_SER[iLine].arr[0] == 'J')
{
fREAD_PLAN_EVENT(ACHV, "EngineAvail", ENGINE, "ENTR");
if(!bTrouve)
{
fREAD_PLAN_EVENT(FIX, "EngineAvail", ENGINE, "ENTR");
}
if(!bTrouve)
{
fREAD_PLAN_EVENT(THEO, "EngineAvail", ENGINE, "ENTR");
}
}
/* Propulsion system availability planning event */
bTrouve = 0;
fREAD_PLAN_EVENT(ACHV, "AV-PropSystm", NACELLE, "ENTR");
if(!bTrouve)
{
fREAD_PLAN_EVENT(FIX, "AV-PropSystm", NACELLE, "ENTR");
}
if(!bTrouve)
{
fREAD_PLAN_EVENT(THEO, "AV-PropSystm", NACELLE, "ENTR");
}
/* Writing Data */
FILL_RECORD(SAP, PGM, "%-*.*s", GETHV(PGM[iLine]));
FILL_RECORD(SAP, MSN, "%-*.*s", GETHV(MSN[iLine]));
FILL_RECORD(SAP, CUST, "%-*.*s", GETHV(CUST[iLine]));
FILL_RECORD(SAP, CUST_RNK, "%-*.*s", GETHV(CUST_RNK[iLine]));
FILL_RECORD(SAP, CONT_RNK, "%-*.*s", GETHV(CONT_RNK[iLine]));
FILL_RECORD(SAP, MODEL, "%-*.*s", GETHV(MODEL[iLine]));
FILL_RECORD(SAP, LMODEL, "%-*.*s", GETHV(LMODEL));
FILL_RECORD(SAP, SERRNK, "%-*.*s", GETHV(SERRNK[iLine]));
FILL_RECORD(SAP, SERNAM, "%-*.*s", GETHV(SERNAM));
FILL_RECORD(SAP, INDVAR, "%-*.*s", GETHV(INDVAR[iLine]));
FILL_RECORD(SAP, VERBASE, "%-*.*s", GETHV(VERBASE));
FILL_RECORD(SAP, STD_RNK, "%-*.*s", GETHV(STD_RNK[iLine]));
FILL_RECORD(SAP, VERS_CUST, "%-*.*s", GETHV(VERS_CUST[iLine]));
FILL_RECORD(SAP, VERS_RNK, "%-*.*s", GETHV(VERS_RNK[iLine]));
FILL_RECORD(SAP, DFOKKER, "%-*.*s", GETHV(DFOKKER));
FILL_RECORD(SAP, DSTATION40, "%-*.*s", GETHV(DSTATION40[iLine]));
FILL_RECORD(SAP, DALENIA, "%-*.*s", GETHV(DALENIA));
FILL_RECORD(SAP, DTHFF, "%-*.*s", GETHV(DTHFF[iLine]));
FILL_RECORD(SAP, DINDUST, "%-*.*s", GETHV(DINDUST[iLine]));
FILL_RECORD(SAP, DCUSACC, "%-*.*s", GETHV(DCUSACC[iLine]));
FILL_RECORD(SAP, DENGINE, "%-*.*s", GETHV(DENGINE));
FILL_RECORD(SAP, DNACELLE, "%-*.*s", GETHV(DNACELLE));
FILL_RECORD(SAP, ENGTYPE, "%-*.*s", GETHV(ENGTYPE[iLine]));
FILL_RECORD(SAP, ACTLIV, "%-*.*s", GETHV(ACTLIV[iLine]));
FILL_RECORD(SAP, ACDLIV, "%-*.*s", GETHV(ACDLIV[iLine]));
FILL_RECORD(SAP, ACSTAT, "%-*.*s", "");
FILL_RECORD(SAP, BATCH, "%-*.*s", GETHV(BATCH));
fprintf(pfResult, "%-*.*s\n", sizeof(RECORD), sizeof(RECORD),
(char *) &sRecord);
fflush(pfResult);
iLine++;
}
if(pcDebug){
printf("=>%.10d\r", iLineBefore);
fflush(stdout);
}
}
if(pcDebug) printf("=>%.10d\n", iLineBefore);
if(pcDebug){
time(&sDate);
printf("=>Sortie boucle CIN at %s", ctime(&sDate));
}
EXEC SQL CLOSE CursSAP;
return (0);
ERR:
if(sqlca.sqlcode != 1403) /* Not found */
{
sprintf(pcErrOra, "%*s %s", sqlca.sqlerrm.sqlerrml,
sqlca.sqlerrm.sqlerrmc,
"(fExtractSAP)");
return(sqlca.sqlcode);
}
else return (0);
} |