Ansicht
Dokumentation

SCP_CONVERT_A_BYTE - Setze ein einzelnes Byte von einem Zeichensatz in einen anderen um

SCP_CONVERT_A_BYTE - Setze ein einzelnes Byte von einem Zeichensatz in einen anderen um

General Data in Customer Master   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

SCP_REPLACE_STRANGE_CHARS wandelt einen Text so um, daß er nur noch einfache Zeichen enthält. Sonderzeichen und nationale Zeichen werden dabei so ersetzt, daß der Text einigermaßen lesbar bleibt.

Standardmäßig wird hierfür der Zeichensatz 1146 benutzt. In diesem Fall wird z.B. folgendermaßen ersetzt:
<225> ==> AE (AE)
<257> ==> A (Acircumflex)
<258> ==> Ae (Adieresis)
<163> ==> L (sterling)

Generell ist zu beachten, daß der neue Text länger als der alte sein kann.

Die Parameter im einzelnen:

INTEXT enthält den vorhandenen, zu bearbeitenden Text. Der übergebene Parameter muß TYPE C haben.

In OUTTEXT wird das Ergebnis hineingeschrieben. (TYPE C)

In OUTUSED wird die Länge des Ausgabetextes hineingeschriben. Falls OUTTEXT länger ist, wird der Rest mit SPACE gefüllt.

In OUTOVERFLOW wird ein 'X' geschrieben, wenn der Ausgabetext nicht vollständig in OUTTEXT hineingepaßt hat. Sonst ein Leerzeichen.

Mit IN_CP kann man anmelden, daß die Daten in INTEXT nicht im Systemzeichensatz vorliegen, sondert im Zeichensatz IN_CP codiert sind.

Mit INTER_CP kan man einen anderen Zeichensatz bestimmen, der für die Ersetzungen benutzt werden soll. Defaultmäßig wird 1146 benutzt.

Falls es Zeichen gibt, die in einer der beiden beteiligten Zeichensätzen nicht vorkommen, so werden Sie durch einen Punkt (".") ersetzt. Dies kann man über den Parameter REPLACEMENT umprogrammieren. Anzugeben ist eine SAP-Zeichennummer! Eine 0 bedeutet, daß gar nicht ersetzt werden soll. In solch einem Fall würde dann die Ausnahmen CANNOT_CONVERT ausgelöst.

Ausnahmen (EXCEPTIONS)

CANNOT_CONVERT bedeutet, daß in den Daten ein Zeichen vorkam, daß nicht umgesetzt werden konnte und gleichzeitig über REPLACEMENT die Ersetzung verboten war.

Wenn man bei IN_CP oder INTER_CP einen Zeichensatz angibt, den es gar nicht gibt, so erhält man INVALID_CODEPAGE.

Es wird geprüft, daß die beiden beteiligten Zeichensätze ähnlich (z.B. beide ASCII) sind. Andernfalls gibt es CODEPAGE_MISMATCH.

Wenn INTEXT oder OUTTEXT nicht vom Type C (echtes Textfeld) sind, kann der Funktionsbaustein sie nicht bearbeiten und meldet ein FIELDS_NOT_TYPE_C.

INTERNAL_ERROR sollte nie vorkommen.

Hinweise

Wenn nur große Buchstaben gewünscht werden, sollte zuerst SCP_REPLACE_STRANGE_CHARS und danach TRANSLATE TO UPPER CASE aufgerufen werden. Beispiel

Ä ==> Ae ==> AE

Weiterführende Informationen

RSCP0007 ist ein Testrahmen.





Parameter

CTRLCODE
INBYTE
INCODE
METHOD
OUTBUFF
OUTBYTE
OUTCODE
OUTUSED
OUT_AS_CHAR4

Ausnahmen

CANNOT_CONVERT
FIELDS_BAD_TYPE
INTERNAL_ERROR
INVALID_CODEPAGE

Funktionsgruppe

SCP7

Fill RESBD Structure from EBP Component Structure   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 4193 Date: 20240605 Time: 154047     sap01-206 ( 71 ms )