CLOB stands for Character Large Object, CLOB stores large amounts of character data ,up to 4GB in size. CLOB data may be very large, some database management systems do not store the text directly in the table. Instead, the CLOB field serves as an address, which references the location of the data.
New Stuff:- How to increase no. of characters in Line text entry using import template
How to address CLOB in X3 Script file and Screen, tables and reports:
In X3,Clbfile is the keyword used to declare the variables of the type CLOB.
Syntax:
Local Clbfile Name_of_the_Variable(Length)
Local Clbfile Name_of_the_Variable(Length)(Dimensions)
Example:
Local Clbfile YMYCLOB(200)
Local Clbfile YMYCLOB(200)(1..10)
Dimension: having index range 1 to 10
In X3 ,ACB is the data types that can be used in all the dictionaries where the CLOB data is defined in screen fields, table fields, report setups, etc.
ACB data type stores the information more than 250 characters in the database.
When saving file date to the field of table if you find any “Text file length too long error”, then declare the field as ACB to rectify the error.
Create Subprogram based Web service:
STEP 1: Create a script with subprogram for storing input data to the table.
Create a table named YCLOBTAB with following fields
S.No |
Name of the Field |
Datatype |
Length |
1 |
YLEG |
A |
10 |
2 |
YFILENAM |
A |
50 |
3 |
YFILESTR |
ACB |
|
4 |
YSTA |
A |
50 |
Click on Create and Validate the table in X3.
Create the Script file name: YSAVEENCRYPT and write the subprogram below:
Subprog YSAVECLOB(YLEG,YFILENAM,YFILESTR,YSTA)
Value Char YLEG
Value Char YFILENAM
Value Clbfile YFILESTR
Variable Char YSTA
##OPENING Table for storing CLOB data FILE
If !clalev([F:YCLB]) Local File YCLOBTAB[F: YCLB] :Endif
####ERROR HANDLING
ONERRGO YCATCH
[F: YCLB]YLEG = YLEG
[F: YCLB]YFILENAM = YFILENAM
[F: YCLB]YFILESTR = YFILESTR
WRITE[F: YCLB]
YSTA = “SUCCESS”
ONERRGO
#####
Close File[F: YCLB]
End
## ERROR HANDLING CATCH METHOD
$YCATCH
YSTA = “FAIL”
Resume
STEP 2: Create Subprograms by referring script file and subprogram created on step 1
Navigational Path: Development>Script dictionary>Subprograms.
Enter the Script file name in File field “YSAVEENCRYPT”
Enter the subprogram name in Subprograms field “YSAVECLOB”
Enter the appropriate description in Description field “Save CLOB data”
Then click on Create button, then publication button gets enabled then click on publication button to create web service.
STEP 4:Invoking the Web service by XML input
For Invoking Webservices, Please refer the blog “How to invoke Import/Export Template through Webservices”
Place the below XML in Input XML/JSON field
<PARAM>
<GRP ID=”GRP1″>
<FLD NAM=”YSLEG” TYP=”Char”>AUS</FLD>
<FLD NAM=”YSFILENAM” TYP=”Char”>FIL002</FLD>
<FLD NAM=”YSFILESTR” TYP=”Clob”>
hQEMA/KwatWd7FffAQf/Zh/GVgozLWaVOVzVrJT9KZvjJ0QKs4p698zA2oCb9LhK
QRprExhgALKZp7qdtnK5LRC9P1VNt0lKduZ23BjxXWlaxY5V+TwxdAcVXEonWhB2
3SbK9wDjgB1w0zItOC+dz5TEYvzXJMlb9mGqVKwVWqRYYaKgjg3AHF4+iu4VSUns
sImvvOvnNDQ/3KPX3NE3F3RS9XeTajU4zozbYkry+mcxGbj9wAsNASMLWqBTb2sN
NGG5EAqkqTBxsIbHv+m5J8GZbpTrJgIkiek+shVrH0nNnIGyz6I7bedxIupFY5xQ
lYAuupvuIuSK4DcOuiXazUvKx81kSFGvKTnsadMCcsnBHaOE6dEW9crEd5itDsWE
yJflofoO2WR7B1vQ5O2Vd8pBLJ7xxtt3SVzQToO4921wRd99BROeMfUDVLXwqR5/
AGUbyw+Y383AFSfdjYvxK2XSW3Fit6JVNZ1SqXVVuMzpyA9+nchkffzL4WiI+p7m
I7VnuAjrltUqTcC+7cd1viTVcH6GD9liaElQnbwVJt12FYOe0JYio9FWOdFPBeIJ
Vhm0RjPm/fDffbGhPm/mzkbhJLskRFXek1e//wt9SEmSgJ6U/erYerfxwOYPDE2n
y3qrP7Kz5ROQn15cU8Fh8zoTBJT53pvAH6GFvpzoQoPyv35Oy1YWulHTRkWoCRoG
kJVbvL2pUftyxZBWc1tufQKZ9VO7s+WqiS1BJWvwj2U1JdbLgbt+1mQXU+T86KHg
xfKTjMBnjZFLKXJxvyn+efx6zfQ5EDiaw7SmsLoQe4stA9RHQcYRuN0UAGR4qxVS
Lm6QAPQImLnz+17Uqt449w5s9OEOlRAva+6aN9tJmp+roeQOT813Mn6BPz51KX65
/gbPUDRgPp30NQsEDbqusrqLVCCEikYGwLteNNShbz2+IR1mDtsEsDsRFJPNOaaL
t05eLvB4DPjCZWL27lKkOXMeXuj3kzYdXDVyl0YHyw===Z1hp
</FLD>
<FLD NAM=”YSTA” TYP=”Char”></FLD>
</GRP>
</PARAM>
The field YSFILESTR contains more than 255 characters.
STEP 5: Response after invoking Web services
<RESULT>
<GRP ID=”GRP1″>
<FLD NAME=”YSLEG” TYPE=”Char”>AUS</FLD>
<FLD NAME=”YSFILENAM” TYPE=”Char”>FIL002</FLD>
<FLD NAME=”YSFILESTR” TYPE=”Clob”>hQEMA/KwatWd7FffAQf/Zh/GVgozLWaVOVzVrJT9KZvjJ0QKs4p698zA2oCb9LhK QRprExhgALKZp7qdtnK5LRC9P1VNt0lKduZ23BjxXWlaxY5V+TwxdAcVXEonWhB2 3SbK9wDjgB1w0zItOC+dz5TEYvzXJMlb9mGqVKwVWqRYYaKgjg3AHF4+iu4VSUns sImvvOvnNDQ/3KPX3NE3F3RS9XeTajU4zozbYkry+mcxGbj9wAsNASMLWqBTb2sN NGG5EAqkqTBxsIbHv+m5J8GZbpTrJgIkiek+shVrH0nNnIGyz6I7bedxIupFY5xQ lYAuupvuIuSK4DcOuiXazUvKx81kSFGvKTnsadMCcsnBHaOE6dEW9crEd5itDsWE yJflofoO2WR7B1vQ5O2Vd8pBLJ7xxtt3SVzQToO4921wRd99BROeMfUDVLXwqR5/ AGUbyw+Y383AFSfdjYvxK2XSW3Fit6JVNZ1SqXVVuMzpyA9+nchkffzL4WiI+p7m I7VnuAjrltUqTcC+7cd1viTVcH6GD9liaElQnbwVJt12FYOe0JYio9FWOdFPBeIJ Vhm0RjPm/fDffbGhPm/mzkbhJLskRFXek1e//wt9SEmSgJ6U/erYerfxwOYPDE2n y3qrP7Kz5ROQn15cU8Fh8zoTBJT53pvAH6GFvpzoQoPyv35Oy1YWulHTRkWoCRoG kJVbvL2pUftyxZBWc1tufQKZ9VO7s+WqiS1BJWvwj2U1JdbLgbt+1mQXU+T86KHg xfKTjMBnjZFLKXJxvyn+efx6zfQ5EDiaw7SmsLoQe4stA9RHQcYRuN0UAGR4qxVS Lm6QAPQImLnz+17Uqt449w5s9OEOlRAva+6aN9tJmp+roeQOT813Mn6BPz51KX65 /gbPUDRgPp30NQsEDbqusrqLVCCEikYGwLteNNShbz2+IR1mDtsEsDsRFJPNOaaL t05eLvB4DPjCZWL27lKkOXMeXuj3kzYdXDVyl0YHyw== =Z1hp</FLD>
<FLD NAME=”YSTA” TYPE=”Char”>SUCCESS</FLD>
</GRP>
</RESULT>
This blog helps us to understand what is CLOB, what is the keyword used in script and database in X3 and how to store the CLOB data to the table using subprogram based web service.