0
votes

Sélectionnez les 30 derniers jours des rangées de Mara en utilisant SSIS

J'essaie de Sélectionner des lignes pour la dernière date Changement = 30 jours.

J'ai essayé Laeda = (SY-DATUM -30) dans où la clause , mais elle a toujours généré une erreur.I Connexion à la base de données SAP ABAP .

 Entrez la description de l'image ici

Erreur de message:

[eis-matériau 1 ] Erreur: erpconnect.erpException: erreur Valeurs de retour de la fonction de réception: System_Failure Une erreur s'est produite tout en analysant une entrée dynamique. à Erpconnect.rfcapi.receivefunctionResults (UINT32 ConnectionHandle, Rfc_parameter [] importation, rfc_parameter [] changeant, rfc_table [] tables, codage de l'apogage) à Erpconnect.rfccfunction.receivefonctionsArguments (RFC_TABLE [] & apitables) à erpconnect.rfccfunction.callclassicapi () à Erpconnect.rfccfunction.executerfc (octet [] tid) à Xtractkernel.extractors.tableextractor.getpackage (rfcfunction & func)
sur xtractionkernel.extractors.Tableextractor.extractor () à Xtractkernel.extractors.extractorbase`1.Extract (processResultCallback ProcessResult) à Xtraltis.xtractSourcetable.PrimeOutput (int32 sorties, int32 [] évedids, pipelinebuffer [] tampons) à Microsoft.sqlserver.dts.pipeline.managedcomponenthost.hostprimeOutput (IDTMANAGEDComponentWrapper100 wrapper, int32 sorties, to32 [] éveilléids, IDTSBuffer100 [] tampons, IntPTR PPBufferWirePacket)


5 commentaires

Quel SGBD utilisez-vous? (SQL Server, SAP Hana, etc.)


J'utilise SAP Abap.


Quel est le message d'erreur? (Veuillez ajouter à la question.)


@Richard j'ai ajouté le message d'erreur.


Donc, votre outil de requête externe est Services d'intégration SQL Server (SSIS)


5 Réponses :


0
votes

Dans MySQL / MARIADB, cela fonctionne:

select ...
from ...
where date >= DATE_ADD(CURDATE(), INTERVAL -30 DAY)


0 commentaires

0
votes

Vous pouvez l'essayer si vous utilisez la base de données SQL:

Select DATEADD(Month, -1, getdate()) 


0 commentaires

4
votes

Vous utilisez donc un outil tiers pour extraire des données d'un système SAP. Selon le message d'erreur, le TOOLE fait un appel de fonction à distance (RFC) et la remise du SQL sur le backend ABAP. Ensuite, votre condition doit être valide Abap / Open Syntaxe SQL, quelle que soit la base de données derrière.

Votre appel (simplifié) ressemblerait à ceci dans ABAP (avec NEW @ -SYNTAX): P>

laeda >= '20190106' "YYYYMMDD


1 commentaires

Dans ABAP, il est possible d'utiliser l'expression hôte @ (sy-datum - 30) mais il est interdit dans une clause dynamique où, très probablement, il ne fonctionnera pas avec Xtract est . Je donne plus de détails dans une réponse séparée.




0
votes

Vous ne pouvez pas spécifier la formule ABAP comme celle-ci via SAP Open SQL.

Ne pas résoudre directement votre défi (comme limitation de produit), voici la manière dont le filtre dynamique est obtenu via AECORTOFT TOOL: P>

(DT_WSTR, 4)(DATEPART("yy" , GETDATE())) + RIGHT("0" + (DT_WSTR, 4)DATEPART("mm" , GETDATE()),2) + RIGHT("0" + (DT_WSTR, 4)DATEPART("dd" , GETDATE()),2)


0 commentaires