ORDImage.process() raise ORA3113
Hi everybody,
I am trying to use ORDImage to convert images without to
store them into the DB. The code following raise ORA-3113.
Well, I have no idea why whats wrong. Thx in advance.
Thomas
DECLARE
Image ORDSYS.ORDImage := ORDSYS.ORDImage.init();
v_BLOB BLOB := NULL;
v_File VARCHAR(255) := 'C:\test.tif';
BEGIN
DBMS_LOB.CreateTemporary(Image.source.localdata, TRUE);
-- Java-Function to read files from the local file
-- system into BLOBs. This function works !!!
ReadFile(v_File, Image.source.localdata, ...);
Image.setlocal();
Image.setproperties();
Image.process('fileFormat=JFIF maxScale=800 800');
-- Write BLOB to file
WriteFile(...);
dbms_lob.Freetemporary(Image.source.localdata);
END;
Hi Lawrence
you are right. The error occurs because the image is not
under the trancaction control.
Well, I tried to do image processing without to store the
image inside the DB. All what I want to store is a path reference as well as the file and image properties. During my tests with interMedia I encounter some problems with CMYK and black/white images. interMedia does not read in such files and quit the process with ORA-29400:Data Cartridge-Error. Does not interMedia such image format?
I suggest for further development to build functions to read and write image meta data such IPTC, XMP and so on.
Similar Messages
-
PO workflow process raises event but subscription does not fire
Hi:
We are sending POs electronically in XML (11.5.10.2). The PO reaches the supplier correctly. The workflow process to send the PO to the supplier completes successfully. The workflow diagrammer shows that the process fully completes. The last task in the standard process raises an event called oracle.apps.po.event.xmlposent. By default this event has no subscriptions, but I created a subscription that will call a custom workflow process. In testing, I can manually raise this event, and my custom process works. But when the full process runs and completes my custom process does not run. Again, according to the workflow diagrammer, the event in question gets raised. I find no evidence of the event in question in an queue. Why would the process complete, including the step to raise the event in question, but I find no trace of it.
Can anyone suggest additional debugging steps or a solution?
Thank you!Hi,
I have answered your duplicate post on the [WorkflowFAQ forum|http://smforum.workflowfaq.com/index.php?topic=1045.0].
Matt
WorkflowFAQ.com - the ONLY independent resource for Oracle Workflow development
Alpha review chapters from my book "Developing With Oracle Workflow" are available via my website http://www.workflowfaq.com
Have you read the blog at http://www.workflowfaq.com/blog ?
WorkflowFAQ support forum: http://forum.workflowfaq.com -
Limitations with interMedia with ORDSYS.ORDImage.process()?
Hello,
We are currently writing an Apex application that will allow our users to upload pictures to the database. We have been using interMedia to manipulate them as we want to create thumbnails etc. We have one picture that just won't scale down at all. We are using blobs to store the images on the database. We are using the command:
ORDSYS.ORDImage.process(l_thumb, 'maxscale=160 160');
and as I say most of the images are scaling but some are not. The image details is by using ORDSYS.ORDImage.getProperties:
MIME Type: image/jpeg
Width: 3292
Height: 3279
File Format: JFIF
Content Format: 24BITRGB
Compression Format: JPEG
Content Length/Size: 3634347 (bytes)
As I say when I try and do the process command it makes no difference as the thumbnail properties are the same as the original properties.
If so is there anyway around this?
Thanks,
Paul.Hi there.
We are trying to do this in PL/SQL and was wondering if it did write anything to a exception table?
Here is the code that we use:
declare
l_page blob;
l_web blob;
l_thumb blob;
L_TEMP_BLOB BLOB;
TEMP_ID INTEGER;
AMOUNT INTEGER;
l_mime VARCHAR2(250);
begin
IF (:P2_FILE_NAME is not null)
THEN
SELECT blob_content a, mime_type
INTO L_TEMP_BLOB, l_mime
FROM HTMLDB_APPLICATION_FILES
WHERE NAME = :P2_FILE_NAME;
INSERT INTO PL_IMG_DATA(img_data_id, title, location, img_date, grid_ref, orig_img_loc, description, staff_number,unit_id, mime_type, file_name)
VALUES (PL_IMG_DATA_SEQ.nextval, :P2_TITLE, :P2_LOCATION, :P2_DATE, upper(:P2_GRID_REF), :P2_ORIGINAL_LOCATION, :P2_DESCRIPTION, :P2_STAFF_NUMBER, :P2_MAN_UNIT, l_mime, :P2_FILE_NAME)
RETURN img_data_id into TEMP_ID;
COMMIT;
UPDATE PL_IMG_DATA SET THUMBNAIL = EMPTY_BLOB(), WEB_IMG = EMPTY_BLOB(), PAGE_IMG = EMPTY_BLOB()
WHERE IMG_DATA_ID = TEMP_ID;
COMMIT;
SELECT THUMBNAIL, WEB_IMG, PAGE_IMG
INTO l_thumb, l_web, l_page
FROM PL_IMG_DATA
WHERE IMG_DATA_ID = TEMP_ID
FOR UPDATE;
amount := dbms_lob.getlength(L_TEMP_BLOB);
DBMS_LOB.copy(l_thumb, L_TEMP_BLOB, AMOUNT, 1, 1);
DBMS_LOB.copy(l_WEB, L_TEMP_BLOB, AMOUNT, 1, 1);
DBMS_LOB.copy(l_PAGE, L_TEMP_BLOB, AMOUNT, 1, 1);
ORDSYS.ORDImage.process(l_thumb, 'maxscale=160 160');
ORDSYS.ORDImage.process(l_web, 'maxscale=320 320');
ORDSYS.ORDImage.process(l_page, 'maxscale=640 640');
UPDATE PL_IMG_DATA SET THUMBNAIL =L_THUMB, WEB_IMG = L_WEB, PAGE_IMG = L_PAGE
WHERE IMG_DATA_ID = TEMP_ID;
COMMIT;
DELETE FROM HTMLDB_APPLICATION_FILES
WHERE NAME = :P2_FILE_NAME;
END IF;
END;
As we say it seem to work for images that are a certain size but anything that is roughly over 3,500 KB it doesn't scale it down.
We were wondering if the this is a version problem as we are currently on Oracle 9.2.0.8.0?
We did manage to scale it down when we used a TIFF but then the application didn't display it so we converted the scaled down image back to a jpeg. This seems a bit mad to do right enough, -
Hi all,
I have one process chain where Sales items, sales header, billing items, billing headers, delivery item and delivery header all go into 6 ODS objects correspondingly. All these processes raise an event and this is checked by an AND process. If AND is successful then I have another process that has to run. The problem is I am getting an error with the AND process everytime eventhough all the ODS are loading and also activating fine.
Below is the error message I am getting
This AND process is not waiting for event RSPROCESS, parameter 3WHYLT3XJU9D50P7IMMMHASKU
Job cancelled after system exception ERROR_MESSAGE
Does anyone know how I can debug and fix this....
please let me know.
Sabrina.I am also getting same type of error.
in first run it And process doesn't give any error, but when I repair a load and make request green then It fails with following error message.
Job started
Step 001 started (program RSPROCESS, variant &0000000000849, user ID ALEREMOTE)
Event RSPROCESS, parameter 3SCU7890OT3SB9JDPX65IY2A6 already received
Job cancelled after system exception ERROR_MESSAGE
should I adjust the Waiting time?
Please advice. -
Please advise regarding implementing pub/sub in a BPEL process.
Hi guys,
Requirement
The customer information comes as HTTP/SOAP message and is sent to the BPEL process as input. BPEL uses ESB and database adapters to create the customer in Oracle apps. Now, we need to send the same customer information with the Oracle apps customer number to some other systems. The number of systems is not know at this time, so we need a pub/sub mechanism where we can publish the customer creation event with the required parameters (customer name, number, etc.). Then we just create subscriptions to that event as an when required. This gives us the flexibility to add subscriptions withougt changing the initial BPEL process.
My questions
I can think of three ways to do this, please advise.
1. Use Oracle workflow business events and subscriptions. At the end of the BPEL process, raise the wf event and the subscriptions to that will be processed by workflow engine. My doubt here is that most of the times the subscriptions is another BPEL process, so does it make sense to go from BPEL to WF and then WF to PL/SQL to invoke a new BPEL?
2. Use Advanced Queues (Oracle AQ). This is similar to using Oracle WF and to me the issues are also the same.
3. Use routing rules in ESB -- I am not really sure if this can be done to replicate a pub/sub scenario, please advise and elaborate.
As a summary, we want the ability to have pub/sub within BPEL and/or ESB. Any other suggestions are also welcome.
Thanks!I have the same question , but could not find the releveant post in ESB forum.. is the response posted ? pls post the link to that thread...
-
Working with ORDIMAGE - upload image
I'm working with Oracle interMedia. I use the type ORDIMAGE for saving my pictures in the database.
With JDeveloper I've created a form for uploading the pictures. No problem with that. But is it possible to automatically generate a thumbnail version of the picture and save this one in a second field of the type ORDIMAGE ?
I was thinking of a trigger maybe that, when inserting or updating an image, automatically generates a thumbnail. Has someone experience with this ?
Greetz!I've got an idea !!!
I remember browsing through the Intermedia documentation that there are methods on the intermedia objects to do exactly that you are trying to do.
I found a code snippet I guess I tried to use, I think it worked.
DECLARE
Image_1 ORDSYS.ORDImage;
BEGIN
SELECT photo INTO Image_1
FROM Photos WHERE photo_id = 1
FOR UPDATE;
-- Convert and replace the image to a thumbnail image
Image_1.process('maxScale=32 32');
UPDATE Photos SET photo = Image_1 WHERE photo_id = 1;
COMMIT;
END;
Maybe this can be a starting point for you, the code actually converts and replaces an image with an thumbnail, it needs to be edited to make it works as a trigger. Try searching the oracle documentation for the "OrdImage.process" procedure it can do a lot with images. -
Process Chains:Parallel processing
Hi,
If we have some 5 processes,how to load these processes parallelly using process chains?
Here do we have to use "and" operation?
thanks in advance
Regards
DheepaHi Deepa:
Just for the understanding sake, please read the below:
The following processes within process chains allows multiple predecessors to feed into a subsequent process. They are:
AND: All of the processes that are direct predecessors must send an event in order for subsequent processes to be executed
OR: A least one predecessor process must send an event
The first predecessor process that sends an event triggers the subsequent process
Any additional predecessor processes that send an event will again trigger subsequent process (Only if the chain is planned as periodic)
EXOR: Exclusive OR
Similar to regular OR, but there is only ONE execution of the successor processes, even if several predecessor processes raise an event.
as mentioned by srini and others, in your case you need not use a AND process.
assign points if helpful
kalyan -
How to display errors of processes
Dear All,
I created a pl/sql process with exception handling structure like this
when
no_data_found then
raise_application_error(<code>, <message>);
The message is returned to the error page, but I want to have it returned inline in notification. A possible solution would be to create a corresponding validation that runs brefore the process. Within validations you can choose between the returning locations, but that would mean that I have to integrate the logic twice.
Is there any option to display the error message for processes - raised within the exception section - inline ?
Thanks
JensDear Paul,
thank you for your help. Unfortunately I have the following problem when I integrate the logic like this
when
no_data_found then
apex_application.g_print_success_message := 'Display Error';
The string 'Display Error' is displayed within the notification - that's good, but this message will also be displayed if the process fails, because I don't raise the exception. When I integrate the logic like below
when
no_data_found then
apex_application.g_print_success_message := 'Display Error';
raise;
I then get the message again on the seperate error page.
I took a look at the flows schema if there is something like apex_application.g_print_error_message, but I didn't find something useful.
Regards,
Jens -
ORA-26744: STREAMS capture process "STRING" does not support "STRING"
Hi All,
I have configured oracle streams using Note "How To Setup One-Way SCHEMA Level Streams Replication [ID 301431.1]" at schema level
All the changes are getting reflected perfectly and was running smooth, but today suddenly I faced the below error and capture is aborted
ORA-26744: STREAMS capture process "STREAM_CAPTURE" does not support "AMSATMS_PAWS"."B_SEARCH_PREFERENCE" because of the following reason:
ORA-26783: Column data type not supported
Couple of suggestions on forum are to add a negative ruleset, please suggest me how do i add a negative rule set and if this is added to negative ruleset then how the changes to this table will reflect in target database...?
Please help me...
ThanksI do not have any idea why it treats your XMLTYPE stored as CLOB like a XMLTYPE binary. From the doc, we read :
http://download.oracle.com/docs/cd/B28359_01/server.111/b28321/ap_restrictions.htm#BABGIFEA
Unsupported Data Types for Capture Processes
A capture process does not capture the results of DML changes to columns of the following data types:
* SecureFile CLOB, NCLOB, and BLOB
* BFILE
* ROWID
* User-defined types (including object types, REFs, varrays, and nested tables)
* XMLType stored object relationally or as binary XML <----------------------------
* The following Oracle-supplied types: Any types, URI types, spatial types, and media types
A capture process raises an error if it tries to create a row LCR for a DML change to a column of
an unsupported data type. When a capture process raises an error, it writes the LCR that caused
the error into its trace file, raises an ORA-26744 error, and becomes disabled. For your support
NOTE:556742.1 - Extended Datatype Support (EDS) for Streams
to exclude the table:
NOTE:239623.1 - How To Exclude A Table From Schema Capture And Replication When Using Schema Level Streams Replication
Sound like a specific patch. You did not stated which version of Oracle you are running. -
Update table based on collection
Hello friends,
I have two tables:
1- PHOTOS (img_id number (5,0),Product_id number (5,0), Content Blob ....)
2- PRODUCTS (Product_id number (5,0), product_type .... )
each product has 1 to 6 images.
I need to watermark the uploaded images in the memory then update the original images for the watermarked images.
I used this code, but the problem is how to update the images in the photos table based on the product_id ???
DECLARE
type source_col is table of blob index by pls_integer ;
V_source source_col;
cursor c1 is select CONTENT from photos where Product_id = :P22_Product_id;
counter number :=1;
added_image BLOB;
prop ordsys.ord_str_list;
logging VARCHAR2(2000);
begin
--- Here we choose a pattern for watermarking from a table called WATERMARK_PHOTOS
select img INTO added_image FROM WATERMARK_PHOTOS WHERE N = 1;
for rec in c1 loop
V_source(counter) := rec.CONTENT;
ORDSYS.ORDImage.process(V_source(counter), 'fixedScale=900 500');
ORDSYS.ORDImage.applyWatermark(V_source(counter), added_image, V_source(counter), logging, prop);
--- The problem in the following statement: How to update the images
UPDATE photos SET CONTENT = V_source(counter) where Product_id = :P22_Product_id;
Counter := counter + 1 ;
end loop;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;Thanks Sybrand,
I am using Oracle 11g R2 Standard One edition.
the DDL of the photos table is
ID NUMBER 5 0
product_id NUMBER 5 0
FILENAME VARCHAR2 100
MIMTYPE VARCHAR2 250
FILESIZE VARCHAR2 20
CONTENT BLOB in my application I do not know the image id in advance, but i know the id of the product of which I want to edit the images. So:
in the following procedure :p22_product_id is the value of of the primary key of Products table.
I followed your tips, and it worked out. Can you please check and assure that it is OK :
DECLARE
type source_col is table of blob index by pls_integer ;
V_source source_col;
type id_col is table of number index by pls_integer ;
V_id id_col;
added_image BLOB;
prop ordsys.ord_str_list;
logging VARCHAR2(2000);
begin
select content bulk collect into V_source from photos where product_id = :p22_product_id order by id ;
select id bulk collect into V_id from photos where product_id = :p22_product_id order by id ;
SELECT img INTO added_image FROM timg WHERE N = 1;
for i in V_source.first .. V_source.last
loop
ORDSYS.ORDImage.process(V_source(i), 'fixedScale=900 500');
ORDSYS.ORDImage.applyWatermark(V_source(i), added_image, V_source(i), logging, prop);
UPDATE photos SET CONTENT = V_source(i) where id = V_id(i);
end loop;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;Best Regards,
Fateh -
ORA-29400: data cartridge error/IMG-00703: unable to read image data error
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0
ORA-29400: data cartridge error
IMG-00703: unable to read image data
ORA-06512: at "ORDSYS.ORDIMERRORCODES", line 75
ORA-06512: at "ORDSYS.ORDIMERRORCODES", line 65
ORA-06512: at "ORDSYS.ORDIMG_PKG", line 37
ORA-06512: at "ORDSYS.ORDIMAGE", line 927
is raised when the following trigger is processing certain JPGs (example). Other JPGs are handled as expected:
create or replace trigger photo_size_trg
before insert or update on photos
for each row
declare
photo_width integer;
begin
-- Check to see if the new photograph is different from the old one... --
if dbms_lob.compare(:old.photo, :new.photo) != 0
then
-- ...if so, check to see if it's wider than the desired 250 pixel --
-- maximum... --
photo_width := to_number(ordImage.getMetadata(:new.photo)(1).extract('/ordImageAttributes/width/text()').getStringVal());
if photo_width > 250
then
-- ...and if so, apply an image transform that will resize to the photo --
-- to a maximum of 250 pixels wide, keeping the original aspect ratio. --
-- There doesn't seem to be an elegant way of specifying a constraint --
-- in one dimension like this, so the height is specifed as a large --
-- enough value to cover all practical contingencies. --
ordImage.process(:new.photo, 'maxScale=250 10000');
end if;
end if;
end;Any thoughts/suggestions?hi,
I am getting following error,kindly help me out to rectify this ..
thank you
ORA-29400: data cartridge error
ORA-00600: internal error code, arguments: [kokbCollTerminate], [13], [], [], [], [], [], [] -
ROWTYPE to get better query ?
Hello,
I have two identical tables:
PHOTOS_TEMP AND IMAGES_TEST
(ID PK number ,
content blob,
filename varchar2 (200),
mimetype varchar2 (200),
filesize varchar2 (200),
res_id FK number,
watermarked varchar2 (1))I have CODE 1, I want to make it more effecient perhaps by using %ROWTYPE,
So, I tried CODE 2, but it did not work. It tells, "Too many values .... CONTENT must be declared ...."
Can you plesae tune Code 1 ??
h1. CODE 1 is working fine
DECLARE
type source_col is table of blob index by pls_integer ;
V_source source_col;
type id_col is table of number index by pls_integer ;
V_id id_col;
type char_col is table of IMAGES_TEST.FILENAME%TYPE index by pls_integer ;
V_filename char_col;
V_mimetype char_col;
begin
select content,filename,mimetype,id bulk collect into
V_source,v_filename,v_mimetype,v_id from photos_temp
where temp = :P700_TEMP_IMAGE for update ;
for i in V_source.first .. V_source.last
loop
ORDSYS.ORDImage.process(V_source(i), 'fixedScale=800 500');
end loop;
forall i in V_source.first .. V_source.last
insert into IMAGES_test
(res_id ,CONTENT,filename,mimetype,filesize,watermarked)
values
(:P700_res_ID ,V_source(i),V_filename(i),V_mimetype(i),
dbms_lob.getlength(V_source(i)), 'Y');
COMMIT;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;h1. CODE 2 supposed to be more efficient, but not working ?
DECLARE
type new_row is table of IMAGES_TEST%rowtype index by pls_integer ;
v_row new_row;
begin
-- This may collect more than one row
select * bulk collect into
v_row from photos_temp
where temp = :P700_TEMP_IMAGE for update ;
for i in v_row.id.first .. v_row.id.last
loop
ORDSYS.ORDImage.process(v_row.content(i), 'fixedScale=800 500');
end loop;
forall i in v_row.id.first .. v_row.id.last
insert into IMAGES_test
(res_id ,CONTENT,filename,mimetype,filesize,watermarked)
values
(:P700_res_ID ,v_row.contnet(i),v_row.filename(i),v_row.mimetype(i),
dbms_lob.getlength(v_row.content(i)), 'Y');
COMMIT;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;Best Regards,
Fateh
Edited by: Fateh on Nov 26, 2012 5:22 AMhi,
In your CODE 1
select content,filename,mimetype,id bulk collect into
V_source,v_filename,v_mimetype,v_id from photos_temp
where temp = :P700_TEMP_IMAGE for update ;
-- temp is not a collumn name nor a variable name
...So I think that does not work.
In code 2 you must use the index "( i)" on the table variable and not on the attribute. So:
v_row.contnet(i) --THIS IS WRONG!
v_row(i).contnet -- This is OK
Also:
v_row.id.first --THIS IS WRONG!
v_row.first --This is OK
Below is an working example:
insert into photos_temp (id ,filename) values ( 1,'peter');
insert into photos_temp (id ,filename) values ( 2,'Fateh');
commit;
DECLARE
type new_row is table of IMAGES_TEST%rowtype index by pls_integer ;
v_row new_row;
begin
select * bulk collect into
v_row from photos_temp
--where temp = :P700_TEMP_IMAGE
for update ;
--for i in v_row.id.first .. v_row.id.last
for i in v_row.first .. v_row.last
loop
DBMS_OUTPUT.PUT_LINE('Id: ' || v_row(i).id || ' filename: ' || v_row(i).filename);
end loop;
end;
Result:
Id: 1 filename: peter
Id: 2 filename: FatehAnd in your case for code 2 simplyfied:
DECLARE
type new_row is table of IMAGES_TEST%rowtype index by pls_integer ;
v_row new_row;
begin
select * bulk collect into
v_row from photos_temp
--where temp = :P700_TEMP_IMAGE
for update ;
--forall i in v_row.id.first .. v_row.id.last
forall i in v_row.first .. v_row.last
insert into IMAGES_test
(id ,filename)
values
(v_row(i).id, v_row(i).filename);
end;
select
id
,filename
from
images_test;
Result:
ID FILENAME
1 peter
2 Fateh Whoever this works in:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
"CORE 11.2.0.1.0 Production"
TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
I think in oracle 9 you must use seperate table variables and not one table variable of a scalar type.
Regards,
Peter -
Relational interface, basic question
Hi, I have over a million images stored in a blob column.
We are using oracle 8.1.7 and forms 6.0.
We do have intermedia installed on the database but it is not
used in this application.
The images were inserted as TIFF's through a form.
Question.
Intermedia Relational interface be used to change the
compression setting of the TIFF images? using the process()
method?
Can Intermedia Relational interface be used to change the image
format of some of the images?
Thank you
David WiltonRajiv,
I like your suggestion of using the process method from a stored
procedure without having to install intermedia relational
interface. I'm not sure how to assign the ORDSYS variables to
the blob. David, please see the example below.
Our problem:
We have some TIFF images compression: CCITT group 3 and 4
(lossless compression).
Some of these images cause the forms application to crash upon
display. Forms bug, oracle sent me an oneoff for patch 9 for
forms 6i to see if this corrects the problem, it did not.
Using Forms, If I update the record and resave the image as
image type JFIF, the image can be viewed without problems.
I think when the image is saved as a JPEG some of the discarded
information might be what causes the image to crash the oracle
forms application. Therefore it no longer crashes the
application.
I am wondering if I can change the compression settings of these
problem images to JPEG and keep the image as a TIFF. or change
to a JPEG image and jpeg compression save then possibly convert
it back to TIFF.
David, if I understand your scenario correctly, your client
application is having a problem displaying certain TIFF images.
You want to modify these (by changing compression/deleting tags
etc) so that your client can display them correctly.
You should try changing the compression of these images from
CCITT 3/4 to PackBits or LZW first before trying JPEG.
In your case, using JPEG compression will explode the size of
the image data (CCITT is monochrome whereas JPEG will use 8bits)
and the image quality will also deteriorate.
If on the other hand I misunderstood your scenario and you are
having a problem with our TIFF reader with certain images, please
send us a sample problem file to investigate this further.
Here's the start of my procedure
how do I assign the ordsys variables to my blob?
thank you
David
PROCEDURE change_image IS
v_image BLOB;
v_intermed_image ORDSYS.ORDImage;
v_blob_intermed ORDSYS.ORDImgB;
BEGIN
select image_data
--into v_blob_intermed
into v_image
from obra.scanned_images
where scanned_images_rec = 1218450
for update;
-- how to assign ordsys variable to blob????
v_intermed_image := v_image;
-- v_blob_intermed := v_image;
-- keep tiff format change compression from group 3 to jpeg
ordsys.ordimage.process
(v_intermed_image, 'compressionFormat=JPEG,compressionQuality=MED
COMP');
-- change image to jpeg format
-- ordsys.ordimage.process
(v_intermed_image, 'fileFormat=JFIF,
compressionFormat=JPEG,compressionQuality=MEDCOMP');
update obra.scanned_images
set image_data = v_intermed_image
where scanned_images_rec = 1218450;
commit;
exception
when others then
raise;
END; PROCEDURE change_image IS
v_intermed_image ORDSYS.ORDImage;
BEGIN
select image_data
into v_intermed_image.source.localdata
from obra.scanned_images
where scanned_images_rec = 1218450
for update;
-- you can optionally invoke setProperties to inspect the image
-- v_intermed_image.setProperties ;
-- dbms_output.put_line('Height ' ||v_intermed_image.height);
-- keep tiff format change compression from group 3 to packbits
v_intermed_image.process( 'compressionFormat=PACKBITS,
compressionQuality=MEDCOMP');
-- for blobs selected for update, you don't need an additional
-- update but it doesn't hurt. If you were updating a lob
-- attribute of an object you would need the line below.
update obra.scanned_images
set image_data = v_intermed_image.source.localdata
where scanned_images_rec = 1218450;
commit;
exception
when others then
raise;
END; -
Populate new fields in DSO (DBTable) with ABAP routine
Hi,
I've added a couple of fields to a DSO. The DSO contains a large number of records (60m+) and I have a tight window to cutover so the activation time would be an issue if I use a loop transformation. Therefore, I am looking to populate the additional fields directly in the Active table using an ABAP routine.
One of the fields is a key figure to be derived from an existing CHAR field so would need to apply some logic during update, such as IF <CHAR_FIELD> CA 'ABC'. <KYF_FIELD> = 1 etc.
Aside from fairly basic Start Routines my ABAP is very poor so was wondering if anyone can help me with the syntax or, preferably some sample code to achieve this.
Thanks in advance,
AdHi,
In transformation of the cube, choose routine for char E.
There you can assign value in RESULT field. Actually RESULT field is assigned to E, find the code below,
*-- fill table "MONITOR" with values of structure "MONITOR_REC"
*- to make monitor entries
... "to cancel the update process
raise exception type CX_RSROUT_ABORT.
... "to skip a record
raise exception type CX_RSROUT_SKIP_RECORD.
... "to clear target fields
raise exception type CX_RSROUT_SKIP_VAL.
(* insert your abap code here to find the value of E*.)
RESULT = * assign the value you got for E here.
rgrs,
v.sen -
Hello,
I have the code below as a model .
As far as I see , it is done for fiscal period. I need something similar, to put date and time.
I move data from cube 1 to cube 2, BW 7.0.
My cube 2 has two more extra fields then cube 1(date and time of the request that comes).
I don't understand why I need the read table instruction and how I test in my case for request, instead of fiscal period.
Any suggestions/ clues ...?
Thank you.
METHOD end_routine.
FIELD-SYMBOLS:
<RESULT_FIELDS> TYPE tys_TG_1.
DATA:
MONITOR_REC TYPE rstmonitor.
$$ begin of routine - insert your code only below this line -
... "insert your code here
*-- fill table "MONITOR" with values of structure "MONITOR_REC"
*- to make monitor entries
... "to cancel the update process
raise exception type CX_RSROUT_ABORT.
DATA: fiscper type RSBK_S_RANGE-high,
RESULT type tys_TG_1,
l_tabix type sy-tabix,
l_requnr TYPE fieldname,
e_th_selections type RSBK_TH_RANGE,
e_th_fiscper type line of RSBK_TH_RANGE.
e_th_selections = p_r_request->get_th_range( ).
READ TABLE e_th_selections WITH KEY fieldnm = 'FISCPER'
INTO e_th_fiscper.
fiscper = e_th_fiscper-high + 1.
LOOP AT RESULT_PACKAGE INTO RESULT.
l_tabix = sy-tabix.
result-fiscper = fiscper.
result-fiscyear = fiscper+37(4).
result-fiscper3 = fiscper+41(3).
MODIFY RESULT_PACKAGE FROM RESULT INDEX l_tabix.
CLEAR RESULT.
ENDLOOP.I am not sure I understand - do you want to populate cube infoobjects with the current date and time in an end routine, or using the methods provided by p_r_request ?
p_r_request has methods like GET_TSTMP_START, that you can see if they work for you.
Maybe you are looking for
-
T61 32-bit XP to 64-bit Win8 - general approach that may work for other models
I recently tried to upgrade my T61 from 32-bit to 64-bit Win 8 using the $39.99 download. DO NOT WASTE YOUR TIME TRYING THIS, IT WILL FAIL. HOWEVER, IF YOU PURCHASE THE $69.99 VERSION WITH BOTH 32-bit AND 64-bit MEDIA YOU CAN DO IT (no downloadable
-
WebDAV: Excel 2013 truncates the encoded URL at # (%23)
(originally posted in Open Spec forum, but was asked to repost here) We encountered a problem on our existing WebDAV server with Office 2013. When a file name contains a number sign (aka hash, aka pound sign), Excel truncates the URL at that sign. N
-
Disappointed with TCs wireless performance--help!
I have a 1TB Time Capsule which I believe has the same wireless part as the Airport Extreme and my wireless performance and range is surprisingly terrible. Is the Airport Extreme known to have a better wireless characteristic than the Time Capsule? D
-
Sqlnet.ora doesn't seem to be read since oci8 1.3.4
Hello, I used to use oci8 version 1.2.3 and I wanted to update to last version (1.3.4). Everything works fine except the fact that "sqlnet.ora" does not seems to be read anymore. I use the following string to describe my database in oci_connect: "MEN
-
Hello All, I need to get a Report on the Last Purchase Price for some materials. Where can I find this report? Is there any report that shows the materials related to the suppliers. Best Regards, Miguel Edited by: Miguel Barbosa on May 25, 2009 5:59