2010-01-22 12 views
5

Je sais! La "bonne" façon de lire STXL.CLUSTD est via la fonction SAP ABAP. Mais je suis désolé, nous souffrons beaucoup du problème de performance. Nous avons déjà pris la décision d'aller directement à la base de données (Oracle), et nous n'avons aucun plan pour revenir sur notre décision car tout va tellement mieux jusqu'à présent.Comment décoder du texte SAP à partir de STXL.CLUSTD?

Cependant, nous avons rencontré ce problème. Le texte dans le champ STXL.CLUSTD a été stocké dans un format incompréhensible. Nous ne pouvons pas trouver d'informations sur son format d'encodage via google. Quelqu'un peut me suggérer comment décoder le texte de STXL.CLUSTD?

Remerciements

+0

Je ne crois pas que votre problème de performance provienne de l'appel de 'READ_TEXT'. Le module de fonction est assez rapide. En outre, dans une session, les textes lus à plusieurs reprises sont mis en mémoire tampon. Avez-vous fait une trace 'SAT' ou' SE30' et analysé la liste supérieure? – rplantiko

Répondre

9

Version abrégée: pas vous. Utilisez le module de fonction READ_TEXT.

Version longue: Vous recherchez une table de cluster. Voir http://help.sap.com/saphelp_47x200/helpdata/en/fc/eb3bf8358411d1829f0000e829fbfe/frameset.htm pour les détails. Les données que vous voyez sont une représentation interne du texte, en quelque sorte liée à la façon dont le noyau ABAP gère les données en interne. Ces données n'ont aucun sens sans les métadonnées. Si vous modifiez la structure d'origine d'une manière incompatible, les données ne peuvent plus être lues. Oh, et ai-je mentionné que les données ne contiennent pas de référence aux métadonnées? Lorsque vous lisez le contenu de ces tables, même dans ABAP, vous devez connaître la structure de données source d'origine, sinon vous êtes condamné. Sans les métadonnées et la connaissance de la façon dont le noyau gère ces types de données à l'exécution, vous aurez du mal à déchiffrer le contenu. Opinion personnelle: L'accès direct à la base de données sous le système SAP R/3 est une très mauvaise idée car cela contourne non seulement toutes les mesures de sécurité, mais vous rend également très vulnérable à tous les changements structurels de la base de données. La seule vraie raison pour accéder directement à la base de données n'est pas le manque de performance, mais le manque de connaissance (ABAP), et qui devrait être curable :-)

+0

convenu. vous * n'accédez pas * aux tables de base de données, et * jamais * à une table de cluster. –

+1

Ok. J'ai abandonné. Je vais essayer de convaincre mon patron d'investir plus de ressources sur les choses ABAP. Merci – Sake

+0

Nous avons un moyen ABAP pour extraire des données de cluster, mais nous voulons utiliser la réplication de données en temps réel, et pour cela accéder aux données dans les tables de cluster serait la clé. Alors quelqu'un sait-il comment décompresser le (s) champ (s) VARDATA? Quel type de compression utilise SAP? –

0

Vous pouvez certainement lire les clusters et les pools sans exécuter de code ABAP, ou en invoquant RFC ou BAPI, etc. c'est une très bonne approche, très performante et facile à utiliser. Je n'aime pas les gens fouetter leurs produits dans StackOverflow, mais les informations que vous devez utiliser pour utiliser les données SAP sont obsolètes depuis plus de 7 ans maintenant.

Merci,

Bill MacLean

  • Je viens de remarquer ce fil et je travaille pour Simplement. Snow_FFFF est correct (BTW, cet utilisateur n'est pas moi, et ASFAIK n'est pas quelqu'un dans notre société). Le produit Data Liberator supprime et regroupe les tables (et beaucoup d'autres choses) pour nos clients depuis 2009.
+0

Bienvenue à SO Bill. Il n'y a pas besoin de signer vos réponses. Lorsque vous avez un peu plus de réputation, vous pouvez ajouter des commentaires aux réponses des autres. –

+0

@Bill, existe-t-il un code SQL que vous pouvez partager avec nous pour lire ces clusters – Eralper