Quelquepart

Blog d'un développeur ABAP

Vous êtes ici : Accueil>Archives> 2012

Archives 2012

Correspondance Request number / Request ID

Rédigé par Sébastien Hermann dans Général -

Dans toutes les tables relatives aux chargements (listées dans un billet à venir), vous trouverez un ID unique sur 29 caractères de la forme REQU_xxxx. Mais en affichage dans BW, il est souvent fait référence à un numéro court (nombre incrémenté de 1 pour chaque nouveau chargement).

Lors d’une erreur à l’activation, BW indique généralement l’ID de requête erroné.

Passer facilement de l’un à l’autre est enfantin… une fois que l’on connait la signification de ces 2 objets : Le request ID est en fait le SID du Request number (parfois appelé lui même request ID, suivant les écrans...) Il suffit donc d’aller lire la table /BI0/SREQUID pour obtenir l’un à partir de l’autre.

Déménagement

Rédigé par Sébastien Hermann dans Général -

On garde les mêmes et on recommence !

Ouverture du nouveau site identique à l'ancien... mais en nouveau :)

Mots clés : aucun

PSA Maintenance - impossible d'accéder en modification

Rédigé par Sébastien Hermann dans Général -

Il arrive que malgré tous vos efforts, BW ne vous laisse pas modifier une entrée de PSA lors d’un chargement en erreur. Tout est pourtant bon au niveau des autorisations… Mais qu’en est-il du statut de chargement ?

- Il est rouge ! Me rétorquerez-vous probablement énervé par cette question, semble-t-il, idiote.

Sauf que le feu tricolore n’est qu’un résumé simpliste des différents statuts possibles d’un chargement. Pour BW il existe 25 statuts différents, et certains d’entre eux ne permettent pas de modification de la table PSA. Ce statut est stocké dans le champ AUFRUFER de la table RSMONICDP.

Voici la liste des statuts en question :

60Insert/update in database for transaction data
61Insert/update in database for texts
62Insert/update in database for master data
63Insert/update in database for hierarchies
70End of Processing

Si jamais vous êtes dans une situation semblable et que bidouiller la couleur du feu n'y change rien, vous avez juste à modifier le contenu de RSMONICDP (en y mettant le statut 66 par exemple). Comme par magie, la maintenance de PSA redevient possible. N'oubliez pas de remettre les statuts d'origine après modification de la PSA.

Une solution moins brutale consiste a supprimer des cibles toutes les demandes qui sont dans un des statuts bloquants. La PSA redeviendra modifiable, et ensuite vous pourrez "pousser" les données vers les cibles non mises à jour.

Tables utiles pour SAP BW / BI

Rédigé par Sébastien Hermann dans Liste mémo -

TableDescriptionVersion BW
Area
RSDAREARépertoire des infoarea3/7
RSDAREATTextes des infoarea3/7
InfoObject
RSDIOBJRépertoire de tous les InfoObjets3/7
RSDIOBJTTextes des InfoObjets3/7
RSDATRNAVAttributs de navigation3/7
RSDATRNAVTTextes des attributs de navigation3/7
RSDBCHATRAttributs de données de base3/7
RSDCHABASCaractéristique de base (pour caract., caract. temp. et unités)3/7
RSDCHACatalogue de caractéristiques3/7
RSDDPACaractéristiques paquets de données3/7
RSDIOBJCMPCouplage d'InfoObjets (dépendances)3/7
RSDTIMCaractéristiques temps3/7
RSDUNIUnités3/7
Hierarchie
RSHIEDIRRépertoire de toutes les hiérarchies3/7
RSHIEDIRTTextes des hiérarchies3/7
RSMHIERNODEDonnées de base des noeuds textes3/7
RSTHIERNODETextes des noeuds textes3/7
DSO / ODS
RSDODSORépertoire de tous les DataStores3/7
RSDODSOTTextes des DataStores3/7
RSDODSOIOBJInfoObjets des DataStores3/7
RSDODSOATRNAVAttributs de navigation des DataStores3/7
InfoCube
RSDCUBERépertoire des InfoCubes / InfoProvider3/7
RSDCUBETTextes des InfoCubes3/7
RSDCUBEIOBJInfoObjets des InfoCube3/7
RSDDIMERépertoire des dimensions3/7
RSDDIMETTextes des dimensions3/7
RSDDIMEIOBJInfoObjets pour chaque dimension3/7
RSDCUBEMULTIInfoCubes participant au MultiCube3/7
RSDICMULTIIOBJMultiProvider : sélection/identification d'InfoObjets3/7
RSDICHAPROPropriétés de caractéristique spécifiques aux InfoCubes3/7
RSDIKYFPROPropriétés de ratio spécifiques aux InfoCubes3/7
RSDICVALIOBJInfoObjets de table de validité de valeurs non cumulatives pr InfoCube3/7
RSMDATASTATEStatut des données dans un cube3/7
RSICCOMPCompression management3/7
Transformation (BI7.x)
RSTRANRépertoire des Transformations7
RSTRANFIELDMapping paramètres de règles - Zones de structure7
RSTRANRULERègle de transformation7
RSTRANRULESTEPEtapes des règles de transformation7
RSTRANSTEPMAPMapping des étapes de règle à l'intérieur d'une règle7
RSTRANSTEPROUTRègles de type routine ABAP7
RSTRANROUTMAPZones transférées pour les règles de type routine ABAP7
Règle de mise à jour
RSUPDINFORépertoire des règles de mise à jour3/7
RSUPDDATMapping des règles de mise a jour3/7
RSUPDKEYRègle de mise à jour : clé pour chaque ratio3/7
RSUPDROUTRègles de mise à jour de type routine ABAP3/7
RSUPDFORMRègles de mise à jour de type formule3/7
RSUPDSIMULHTable pour mémorisation d'info. d'en-tête données de simul.3/7
RSUPDSIMULDTable pour mémorisation de mise à jour données de simulation3/7
RSUPDENQSuppression des blocages dans les règles de mise à jour3/7
InfoSource
RSISRépertoire des infosources3/7
RSISTTextes des infosources3/7
RSISFIELDZones des infosources générées3/7
InfoSource (BI 7.x)
RSKSNEWRépertoire des infosources 7.x7
RSKSFIELDNEWZones des infosources 7.x7
Structure de communication
RSKSRépertoire des structures de communication3/7
RSKSFIELDZones des structures de communication3/7
RSISFIELDInfoObjects of an InfoSource with Flexible Update3/7
Structure de transfert
RSTSRépertoire des structures de transfert3/7
RSTSFIELDZones des structures de transfert3/7
RSTSRULESRègles des structures de transfert3/7
RSAROUTTTextes des routines des règles des structures de transfert3/7
DD03TTextes des zones des structures de transfert3/7
Code ABAP
RSAABAPCode source des routines ABAP3/7
RSLDPRULECode source des routines de sélection de type ABAP dans les infopackages3/7
DataSource (dans système source)
ROOSOURCERépertoire des OLTPSources3/7
ROOSFIELDZones des OLTPSources3/7
ROOSGENObjets générés pour OLTPSource3/7
DataSource (= OLTP Source)
RSOLTPSOURCERépertoire des OLTPSources 3.x ds BW3/7
RSOLTPSOURCEFIEZones des OLTPSources 3.x3/7
RSDSRépertoire des DataSource 7.x dans BW7
RSDSTDataSource 7.x - Texts7
RSDSSEGSegments des datasources 7.x7
RSDSSEGFDZones des segments des datasources 7.x7
ROOSPRMSFParamètre de pilotage par DataSource3/7
ROOSPRMSCParamètre de pilotage pour chaque canal d'un DataSource3/7
RSSDLINITDernières initialisations valables par OLTPSource3/7
RSSDLINITSELParamètres de sélection des dernières initialisations valables par OLTPSource3/7
RSSDLINITDELDernières initialisations supprimées pour une source OLTP3/7
Mapping
RSISOSMAPMapping entre infosource et OLTPSource3/7
RSOSFIELDMAPMapping entre zones OLTPSource et infoobjets3/7
PSA
RSTSODSRépertoire des PSA3/7
RSPSADELSuppression de demandes PSA en arrière plan3/7
InfoPackage
RSLDPIORépertoire des infopackages3/7
RSLDPIOTTextes des infopackages3/7
RSSDBATCHOptions des infopackages3/7
RSLDPSELParamètres de sélection et options de delta des infopackages3/7
RSLDPDELParamètres de sélection pour suppression dans les cibles3/7
RSLDPRULECode source des routines de sélection de type ABAP3/7
RSPAKPOSPosition d'exécution des InfoPackages ds les groupes d'InfoPackages (obsolète en BI7)3/7
DTP (BI 7.x)
RSBKDTPRépertoire des DTP7
RSBKDTPTTextes des DTP7
RSBKDTPHHistorique des versions des DTP7
RSBKDTPTHTextes des historiques des versions des DTP7
RSBKDTPSTATStatuts des DTP7
RSDDSTATDTPTable pour statistiques WHM : détails DTP7
RSOACUBE_DTPMapping infocube - DTP7
RSBKREQUESTDemandes DTP7
RSBKREQUEST_VDemandes DTP (vue)7
RSBKSELECTSélections pour les demandes DTP (regroupement)7
RSBKDATAPAKSELSélections pour les demandes DTP7
RSBKDATAPAKIDTable de statut pour paquets de données de DTP7
RSBKDATAINFOInformation on DTP Runtime Buffers7
RSBKBPPoints d'arrêt7
RSBKSUBSTEPPropriétés de sous-étapes d'un PTD7
ProcessChain
RSPCCHAINATTRRépertoire des process chain3/7
RSPCCHAINTTextes des process chain3/7
RSPCCHAINEtapes des process chain3/7
RSPCTRIGGERRépertoire des trigger de process chain3/7
RSPCTRIGGERTTextes des trigger de process chain3/7
RSEVENTHEADRépertoire des évenements gérés dans les process chain3/7
RSEVENTHEADTTextes des évenements gérés dans les process chain3/7
RSEVENTCHAINDétails des évenements gérés dans les process chain3/7
RSPCCHAINEVENTSEvénements multiples dans les process chain3/7
RSPCVARIANTATTRRépertoire des variantes des étapes de process chain3/7
RSPCVARIANTTTextes des variantes des étapes de process chain3/7
RSPCVARIANTValeurs des variantes des étapes de process chain3/7
RSPCCOMMANDLOGProtocoles exécution de commande système dans les process chain3/7
RSPCLOGCHAINTable croisée ID protocole / ID process chain3/7
RSPCLOGSProtocoles application process chain3/7
RSPCPROCESSLOGProtocoles de l'exécution des process chain3/7
RSPCRUNVARIABLESVariables pour process chain pour l'exécution3/7
RSPC_MONITORMonitorage des process chain individuelles3/7
RSPC_BUFFERMémoire tampon partagée pr processus (notammt progr.client)3/7
Moniteur - Chargements
RSREQDONERépertoire des demandes3/7
RSLDTDONETextes des demandes3/7
RSMONICDPStatut des demandes par infoprovider3/7
RSMONICTABVolume de données transférés des demandes par id d'infoprovider3/7
RSSELDONEParamètres de sélection des demandes3/7
RSMONIPTABListe des paquets de données par demande3/7
RSMONMESSListe des messages par demande3/7
RSICCONTListe des cibles par demande3/7
Etats, requètes (Queries)
RSRREPDIRRépertoire de tous les états3/7
RSZCOMPDIRRépertoire de composantes réutilisables3/7
RSZCOMPICAffectation de composantes réutilisables <-> InfoCube3/7
RSZCHANGESHistorique de modification des composantes réutilisables3/7
RSZELTDIRRépertoire d'éléments de composantes de fonction de reporting3/7
RSZELTTXTTextes des éléments de composantes de fonction de reporting3/7
RSZELTXREFRépertoires des références d'élément de requête3/7
RSZELTPROPPropriétés d'élément (options)3/7
RSZRANGESpécifications de sélection pour un élément3/7
RSZSELECTPropriétés de sélection pour un élément3/7
RSZELTATTRSélection d'attributs par élément de dimension3/7
RSZELTPRIOPriorités lors des conflits d'éléments3/7
RSZCALCDéfinitions d'un élément de formule3/7
RSZCELRépertoire des cellules3/7
RSZGLOBVVariables globales dans la fonction d'édition3/7
V_RSZGLOBVVue de gestion des variables3/7
Dossiers de travail (Workbooks)
RSRWBINDEXRépertoire des Workbook3/7
RSRWBINDEXTTextes des Workbook3/7
RSRWBSTOREStockage pour les workbook3/7
RSRWBTEMPLATEAffectation des workbook comme modèle personnel3/7
RSRWORKBOOKCas d'emploi pour états dans les workbook3/7
Modèles&objets Web (Web templates/items)
RSZWTEMPLATETable d'en-tête pour les modèles HTML BW3/7
RSZWOBJArchivage des modèles/postes/vues3/7
RSZWOBJTXTTextes pour modèles/postes/vues3/7
RSZWOBJXREFStructure des objets web dans un modèle3/7
RSZWITEMRépertoire des objets web3/7
RSZWITEMXREFTable des références croisées des objets web3/7
RSZWMDITEMMetadonnées BW Web : poste modèle (fourn. données, poste...)3/7
RSZWMIMEIOBUFFERMém. tamp. pr traduction de chemin Mime Repository vers IO3/7
Agrégats
RSDDAGGRDIRRépertoire des agrégats3/7
RSDDAGGRTTextes des aux agrégats3/7
RSDDAGGRCOMPDescription des agrégats3/7
RSDDAGGLTRépertoire des agrégats, textes (BW 3.x - obsolète)3
Open Hub Destination
RSBOHSERVICETPTypes de service3/7
RSBREQUESTDELTARéférence croisée demandes sortantes/entrantes3/7
RSBREQUESTMESSJournal d'une demande3/7
RSBREQUIDRequêtes3/7
RSBREQUID3RDDemandes statut outils externe3/7
RSBREQUIDRUNTable avec le statut pour une exécution d'une demande3/7
RSBSTRUCTURETables et structures générées3/7
RSBSTEPIDMESSJournal d'une demande
RSBOHDESTRépertoire des destinations Open Hub3/7
RSBOHDESTTTextes des destinations Open Hub3/7
RSBOHDESTVARRépertoire des paramètres des destinations Open Hub3/7
Planification
UPS_ATTRIBUTRépertoire des session de planification3/7
UPS_LOCKSTable de blocage pr statut et système de traçabilité3/7
UPS_HASHRelation clé de hiérarchie/hachage3/7
UPS_CUSTTEXTTextes mail propres au client3/7
InfoSpoke
RSBSPOKERépertoire des Infospokes3/7
RSBSPOKETTextes des Infospokes3/7
RSBSPOKESELSETParamètres de sélection des infospokes3/7
RSBSPOKEVSELSETHistorique des paramètres de sélection des infospokes3/7
Statistiques BW
RSDDSTATStatistiques BW (BW 3.x - obsolète)3
RSDDSTAT_OLAPVue : Statistiques OLAP + Front End (BI 7.x)7
RSDDSTAT_DMVue : Statistiques de gestion de données (BI 7.x)7
RSDDSTAT_WRITEStatistiques d'écriture dans les infoproviders (BI 7.x)7
RSDDSTATAGGRStatistiques BW pr sélection d'agrégat et gst. comptable3/7
RSDDSTATAGGRDEFStatistiques OLAP : étape de navig. / définition d'agrégat3/7
RSDDSTATCONDStatistiques sur cycle de compression InfoCube3/7
RSDDSTATDELEStatistiques sur suppr. de données ds InfoCube3/7
RSDDSTATWHMStatistiques pour Warehouse Management3/7
RSDDSTATEVENTSStatistiques des évènements (BI 7.x)7
RSDDSTATEXTRACTStatistiques des extracteurs : date dernier chargement delta3/7
RSDDSTATBCACTStatistiques d'activation du contenu fonctionnel3/7
Misc.
RSDMDELTAAdministration delta datamart3/7
VBHDREn-tête des mises à jour (delta) - (dans système source SAP - SM13)3/7
VBMODModule fonctions des mises à jour (delta) - (dans système source SAP - SM13)3/7
RODELTAMType de procédure delta BW (dans système source SAP)3/7
ROIDOCPRMSParamètres de contrôle des chargements par système source3/7
RSERRORLOGMessages pour enregistrements erronés (en-tête RSERRORHEAD)3/7
RSUICDONETable de sélection pour mise à jour sélect. utilisateur des infoproviders3/7
RSALLOWEDCHARTables des caractères autorisés (via RSKC)3/7
RRKMULTIPROVHINTTable des critères de partitionnement multiproviders3/7
RSFECContrôle Frontend BW. Permet de vérifier la version SAPGUI sur un poste utilisateur.3/7
BTCEVTJOBListe des jobs en attente d'un événement3/7
TBTCOTable de synthèse des statuts de jobs3/7
TBTCPSynthèse des étapes d'un job batch3/7
RFCDESDestinations RFC3/7
TRFCQOUTDescription files d'attente tRFC (file d'att. des sorties) - transaction SMQ13/7
TRFCQINDescription files d'attente tRFC (file d'att. des entrées)3/7
TSTCCodes de transaction SAP3/7
TSTCTLibellés des codes transaction3/7
DD02LRépertoire des tables SAP3/7
DD02TTextes des tables SAP3/7
DD03LZones de tables SAP3/7
DD03TTextes des zones de tables SAP3/7
E070En-tête ordres de transport/tâches3/7
E071Entrées d'objets d'ordres de transport/tâches3/7
VARIRépertoire des variantes d'exécution de programmes3/7
DEVACCESSTable des clés de developpement ABAP3/7
SMEN_BUFFCTable pour la mémoire tampon des favoris3/7
RSADMINSOption système3/7
Archivage
RSARCHIPROPropriétés d'archivage des infoproviders3/7
RSARCHIPROIOBJPropriétés d'archivage des infoproviders par infoobjet3/7
RSARCHIPROLOCPropriétés locales générales des infoproviders3/7
RSARCHIPROLOCSELParamètre de sélection d'archivage3/7
RSARCHIPROPIDRéférences programme de l'InfoProvider3/7
RSARCHREQDemande d'archivage3/7
RSARCHREQFILESFichiers archives vérifiés3/7
RSARCHREQSELSélections demande3/7

Source de départ, complété par mon usage.

Caractères interdits sur BW

Rédigé par Sébastien Hermann dans Fonction, Liste mémo -

Lors de chargements il peut arriver d'avoir une erreur à cause de caractères interdits : "Value 'xxxxx' for characteristic YYYY contains invalid characters"

La transaction RSKC permet de définir la liste des caractères autorisés. Classiquement le générique "ALL_CAPITAL" est utilisé. Mais à quoi correspond-il exactement ?

ALL_CAPITAL autorise tous les caractères à l'exception de 31 caractères de contrôle, c'est-à-dire des caractères invisibles généralement utilisés par les programmes de traitement de texte pour gérer la mise en forme. Aucun de ces caractères ne peut être saisi directement dans SAP, seules des interfaces tiers peuvent éventuellement les injecter. En revanche, il est fréquent de les introduire par erreur lors de copier/coller depuis des logiciels tiers (Word, Excel ou Outlook par exemple).

SAP ne sachant pas les interpréter, ils sont affichés comme des # (mais sont conservés dans leur forme d’origine grâce à Unicode).

Voici la liste des 31 caractères interdits par ALL_CAPITAL :

CodeDésignation
01START OF HEADING
02START OF TEXT
03END OF TEXT
04END OF TRANSMISSION
05ENQUIRY
06ACKNOWLEDGE
07BELL
08BACKSPACE
09CHARACTER TABULATION
0ALINE FEED (LF)
0BLINE TABULATION
0CFORM FEED (FF)
0DCARRIAGE RETURN (CR)
0ESHIFT OUT
0FSHIFT IN
10DATA LINK ESCAPE
11DEVICE CONTROL ONE
12DEVICE CONTROL TWO
13DEVICE CONTROL THREE
14DEVICE CONTROL FOUR
15NEGATIVE ACKNOWLEDGE
16SYNCHRONOUS IDLE
17END OF TRANSMISSION BLOCK
18CANCEL
19END OF MEDIUM
1ASUBSTITUTE
1BESCAPE
1CINFORMATION SEPARATOR FOUR
1DINFORMATION SEPARATOR THREE
1EINFORMATION SEPARATOR TWO
1FINFORMATION SEPARATOR ONE

Pour autoriser ces caractères, il est possible d'utiliser "ALL_CAPITAL_PLUS_HEX" dans RSKC.

Quelques fonctions utiles :
RSKC_ALLOWED_CHAR_GET permet d'obtenir la liste des caractères autorisés saisis dans RSKC.
RSKC_CHAVL_CHECK permet de tester si une valeur va être autorisée par BW.

Un petit fragment de code qui permet de supprimer d'une variable les 31 caractères :

* w_data contient le texte à nettoyer
  DATA: l_length TYPE i,
        l_pos TYPE i,
        lo_not_allowed TYPE REF TO cl_abap_conv_in_ce,
        l_not_allowed_x(32) TYPE x VALUE
'000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F',
        l_not_allowed TYPE string.

* Get list of unauthorized values
  lo_not_allowed = cl_abap_conv_in_ce=>create( input = l_not_allowed_x ).
  lo_not_allowed->read( IMPORTING data = l_not_allowed ).

* search if unauthorized value is found
  IF w_data CA l_not_allowed.
* If found, replace it by space
    l_length = STRLEN( w_data ).
    l_pos = 0.
    DO l_length TIMES.
      IF w_data+l_pos(1) CA l_not_allowed.
        w_data+l_pos(1) = space.
      ENDIF.
      l_pos = l_pos + 1.
    ENDDO.
  ENDIF.