Problem w. hash-value calculation for CLOB with DBMS_UTILITY.GET_HASH_VALUE
Hello Oracle-Experts,
I had to calculate hash-values for a corrorponding CLOB-field (see my post 'Buffer to small ORA-22835 error after migration from 9i to 10g' in forum 'database general').
I calculate the hash-values with the DBMS_UTILITY.GET_HASH_VALUE, e.g:
SQL> SELECT DBMS_UTILITY.GET_HASH_VALUE(LPAD('X',3998,'X'),1,POWER(2,30)) FROM dual;
DBMS_UTILITY.GET_HASH_VALUE(LPAD('X',3998,'X'),1,POWER(2,30))
1053896858
Because the calculation failed with 10g I had taken a closer look at this function and realised the following results:
VALUE DBMS_UTILITY.GET_HASH_VALUE(VALUE,1,POWER(2,30))
LPAD('X',3997,'X') 557754150
LPAD('X',3998,'X') 1053896858
LPAD('X',3999,'X') 888036750
LPAD('X',4000,'X') 162062978
LPAD('X',4001,'X') 162062978
LPAD('X',4002,'X') 162062978
LPAD('X',10000,'X') 162062978
It seems to me that I can't use this function for clob-values with a length greater than 4000 characters because of collisions. Maybe someone with experience
can give me a hint to handle this problem. Worst case i had to write my own CLOB_2_HASH function.
TIA + Best regards
Matthias
Yeah, the 4000-byte limit would be a factor in working CLOBs. I if you only had 4000 bytes you would not need a CLOB in the first place.
If you don't find something better then writing your own function might be the thing to do.
Similar Messages
-
The App Store indicates there is a Software Update that appears to include the HP Printer Software Update 3.0 and iTunes 12.0.1
Unfortunately, the software update fails to install. Instead, it just sits there 'Calculating' for days with no progression on the status bar of the overall update.
The update buttons of both the HP Printer Software Update 3.0 and iTunes 12.0.1 are both greyed out, with no progress bar.
Not sure of what the issue is, there is no warning or error dialog box that appears or any indication of an application that may be interfering with the install.
Any advice?
MacBook Pro (17-inch, Early 2011) 2.3 GHz Core i7, 4GB RAMThanks for the suggestion. I wanted to install the individual updates but because I had settings to automatically download and install updates, whenever I opened the App Store, the system would try to download and install, preventing me from canceling the update to execute each application update one at a time.
After changing the settings from automatically downloading and applying updates, followed by a restart. I was able to open the App Store and run each individual update.
Thanks again. -
Book Value Calculation for an Asset
Dear All,
Is there any Function Module or Logic that gives the proper book value for an asset?
I have tried using FM "FI_AA_VALUES_CALCULATE"
and referred the field e_anlcv-bchwrt_lfd for Book Value.
But the book value is not matching with the standadrd transaction S_ALR_87012936 every time.
I have also tried FM "FIAA_NBV_SHOW_CALC". But this is throwing Dump.
It will great if anyone can help me out in this.
Regards
Arindam
Edited by: Alvaro Tejada Galindo on Apr 14, 2008 4:45 PMAR01 trans. - Assets with values report
AR12 trans. - Asset with no values.
... I would suggest to debug AR01 to see how SAP does it.
Regards.... -
Large HASH_SIZE with DBMS_UTILITY.GET_HASH_VALUE and performance
I need to set the hash_size to quite a large value (16777216) in order to ensure uniqueness for the sets of values I ma hashing.
The examples all use much smaller values (128K).
It seems unlikely to me, but do large values for hash_size affect performance, perhaps in the amount memory used in the PGA for the hashing fucntions.Hi Nijmegen
I think your problem is not related to OWB, but anyway.
If you don't change data type to char, GET_HASH_VALUE function will automatically change this data type to char in your case datetime will be changed to something like '2007.12.16' (try simple function to_char). So both values are equal '16-12-2007 13:43:55' = '2007.12.16' and '16-12-2007 16:43:55' = '2007.12.16' and you will get the same hash value. Better use POWER(2,30).
example
SELECT
DBMS_UTILITY.GET_HASH_VALUE (
TO_CHAR(TO_DATE('16-12-2007 13:43:55','dd-mm-yyyy hh24:mi:ss')),
0,
POWER(2,30)) AS x1,
DBMS_UTILITY.GET_HASH_VALUE (
TO_CHAR(TO_DATE('16-12-2007 16:43:55','dd-mm-yyyy hh24:mi:ss')),
0,
POWER(2,30)) AS x2,
DBMS_UTILITY.GET_HASH_VALUE (
'16-12-2007 13:43:55',
0,
POWER(2,30)) AS x1,
DBMS_UTILITY.GET_HASH_VALUE (
'16-12-2007 16:43:55',
0,
POWER(2,30)) AS x2,
TO_CHAR(TO_DATE('16-12-2007 13:43:55','dd-mm-yyyy hh24:mi:ss'))
FROM DUAL
Regards -
BPC75NW - Periodic Amount Not Calculating for records with blank YTD value
We are on BPC75NW SP6 and have a YTD consolidation application. Data is loaded on a monthly basis uising a process of importing data files from supplying systems and then loading them into BPC using the data manager append function with a transformation file. YTD amounts are as expected and 'most' periodic amounts are also calculated correctly via MDX mesures in reporting. However, in situations where we have a P&L YTD balance in one month (say January) and then in the next month (February) there is no longer a YTD balance in that P&L account, no record is loaded for February YTD and the system is not calculating any February periodic amount. Example:
January - Load $100 to a P&L Account which is the YTD amount
The January YTD amount = $100.
The January Periodic amount = $100.
February - Load no record to the same P&L account as above (as the YTD amount is now 0)
The February YTD amount in the system is blank
The February Periodic amount in the system is blank (This should be a NEGATIVE $100)
As a possible work around we have also tried to load a 0 to February. The data manager package shows the record as loaded successfully but since it is a 0 it really does not put it into the database.
Surely someone out there has already hit this situation and is willing to share the solution.
Thank you,
Vicki S.This problem was resolved by installing SAP Note 1405993 - MDX: Error: Invalid MDX command with
CURRENTMEMBER. The current text on the note does not describe our error but SAP will not extend the text to cover this issue.
Prior to installing this note, the following other notes were also installed but they did not fix the periodic calculation issue. Under SAP's advisement we are going to leave them however as 'they should not have any side effects':
1529720 MDX: No data for calculated member and metadata reference
1590976 MDX: Incorrect data for IIF
1584196 MDX: Calculated members and different dimensions
1528374 MDX: System error GET_PRPTY_VALUE-02-
I will now close this message.
Vicki Shrontz -
Problem in Asset value calculation ... ANEP and ANLC
Hellö ,
We have a problem in calculation of the Fixed Asset values. Please see the link below for the problem. Technically it sums up like transaction values are available in the table ANEP but ANLC table is with the wrong value, Some of the transactions are not reflecting in the calculations of planned values for some of the Assets.
http://docs.google.com/View?id=ddqnbgm8_49cmgq86gx
We develop and implemented a functionality with the next
characteristics:
a. When we ran the MIRO transaction to a fixed asset situation, a
substitution in accounting documents (using a user-exit ) determines
the profit center to the fixed asset and insert the line
item in a custom table.
b. The custom program identifies all pending line items for processing
(via custom table) and, for each fixed asset identified, reverse the
original accounting document, and post the fixed asset in the profit
center '04219CL000'. To do this movement between the profit
center '04106CL000' and '04219CL000' the custom program uses a zero
balance account.
c. First of all, the custom program set the Field <negative values>
(BAPI1022_DEP_AREAS- NEG_VALUES) using the function
BAPI_FIXEDASSET_CHANGE. Later the custom program post the accounting
document using the function BAPI_ACC_GL_POSTING_POST;
d. In less than 1% of the cases the fixed asset posted in this process
it seems with a problem: the asset line itens (transactions - ANEP
table) where correct posted but the fixed asset acquisition values
(ANLC table) where posted in a wrong way (it's initialized - without
any value sometime or not summing up some transaction values properly).
e. Our custom program does not update any field value on the asset.
All the modifications on the asset are being made by the standard
functions above.
Edited by: Ravi Sharma on Jun 17, 2009 9:16 AMHi,
the problem is: Does anybody give you the correct value for each part?
If you know the value for each part you can use transaction ABUMN to transfer values from one asset to a new asset. With this transaction you can create a new asset. And you can make a partial transfer.
If you use this transaction you can simulate before you transfer it.
But as I said the problem is to find out the correct value. In germany for example we have to activate all in one fixed asset (computer with cbu )
Hope this answer your question.
Best regards
Volker -
How "Assigned" value calculated for WBS in CJ30?
Dear all,
I have got a problem with the Assigned value in CJ30. The problem is that the value in column "Assigned" of CJ30 disappeared after I settled the cost of the WBS to another WBS which has no budget control activated (no budget profile assigned). As I know, the Assigned value won't be changed if the WBS is settled to an object with no budget control, for example settle the WBS to a cost center, or a assets. In my case, although the settlment was done between two WBS, but I had removed the budget profile when created the receiver project, which means the receiver WBS has no budget control activated. However, after settlement, the assigned value of the sender WBS disappeared. But if I settle the cost to a cost center or assets, I can see the assigned value still shown on the sender WBS in CJ30.
Can anybody here tell me why this happen? or is this a bug of SAP?
Thank you very much in advance.
Best regards,
BrookI can reproduce your issue. If you toggle open Audience P I think you will find the very last value for the last Category and the last Product_Group will be around 15% for Growth 2014 and around 23% for Growth 2015. The chart series expression
is choosing the last value for ReportItems!YoYGrowthPercentage as it doesn't know how to attribute that ReportItem to the Audience matrix. If you want a chart to display only the percentage for Audience, I suggest that you have a separate data
source with the values for GrowthPercentage for only the Audiences, and make that the data source for your chart. Also, I would make the growth figures in your matrix also a matrix by doing the percentage calculation directly in the table. You would pull in
the value for this year and the value for last year into your data set, and then do the calculation within the report as follows:
=SUM(Fields!Value.Value)/Sum(Fields!LastYearValue.Value)-1
Create a second Column Group adjacent after, also by year. Your query could look something like this, depending on how your tables are structured:
SELECT a.Audience, a.Category, a.ProductGroup, a.Year, a.Value, b.Year as LastYear, ISNULL(b.Value,0) as LastYearValue
FROM YoYGrowth a LEFT OUTER JOIN
YoYGrowth b ON a.Audience = b.Audience and a.Category= b.Category and a.ProductGroup = b.ProductGroup
AND a.Year-1 = b.Year
Hope it helps. Cheers,
Martina White -
GR value calculation for non-valuated material
Hi,
Please help me for the below scenario.
Invoice : 1 is posted with Qty : 1 and Amount: 499520 EUR
Invoice : 2 posted with Qty : 10 and Amount: 499520 EUR
Now when the GR is posted at this point, the GR value is calculated 1,375,360.00. I would like to know the logic on which the system arrived this value.
Qty
Value in EUR
PO Price
1
11200.00
PO Price
44.6
499,520.00
Ist Invoice
1
499,520.00
2nd Invoice
10
499,520.00
Total Invoice
11
999,040.00
GR
44.6
1,375,360.00
Thanks and Regards
Senthilnathanin general you have to reverse your posting in opposite sequence.
so you have to bring all those movements and invoice postings in timely sequence, then you need to reverse it from the youngest to the oldest posting. I added the sequence to your screenshot.
but this is just under the assumption that the world stood still.
From this purchase order history we cannot know if there were other postings that had already affected inventory and its values.
Always keep OSS note 49995 - MMIM: Valuation of return deliveries and GR revrsls in mind.
I think a reversal would even make this situation worse and recommend to leave it as is and clear it via the difference postings and material master price adjustments with MR21.
It would be good if you could try the reversal in a test system before you do it in a production system. -
Problem when define Value range for data element
Dear
When I define a new data element in ABAP Dictionary, for example, ZDATA_ELEMENT_TEST.
I use domain ZDOMAIN_TEST.
(Data type is DEC, the length is 10, and decimals is 2 with sign.)
Now, I want to restrict that, user can ONLY input the value from 10 to 100.
From ABAP course and the Internet, I switch to "Value Range" tab, and define 10 for Lower Limit, 100 for Upper Limit in Intervals section.
And write the simple program.
PARAMETERS test TYPE ZDATA_ELEMENT_TEST.
WRITE: test.
And run it.
Line: -
But, there is a problem.
When I input 200 for test, the program still run and display 200 to screen without any error report or notification. The ABAP runtime system doesn't check the input value.
I want to config for the domain that can satisfies, if the user input the wrong value (e.g: 200 in the previous case), the program will auto raise the error report, or exception, or sth like that.
Any help is welcome.Hi Hanni,
Welcome to forum.
Try to attach key word VALUE CHECK to your PARAMETER statement.
I.e:
PARAMETERS test TYPE ZDATA_ELEMENT_TEST VALUE CHECK.
Note: The addition VALUE CHECK cannot be used together with the additions AS CHECKBOX, RADIOBUTTON, or NO-DISPLAY.
Regards, -
Problem figuring out the encoding for filenames with special characters
I'm not sure if this is the right forum, but this does seem like an OS issue.
I brought in a lot of mp3 and m3u files from a Windows machine to my new Mac. Some of the mp3 files have accented characters in their names, and these names appear in the m3u files. But if I add the m3u file to iTunes, it fails to recognize these names and so I lose all the mp3's with special characters in their names.
I tried to fix this by grabbing the files name in Python, but that didn't work either!
Here's an example: the file's name is "Voilà l'été.mp3"
The m3u files says "Voil\xe0 l'\xe9t\xe9.mp3" -- this doesn't work.
From os.listdir(), I get Voila\xcc\x80 l'e\xcc\x81te\xcc\x81.mp3", but sticking it in an m3u files doesn't work either. (Note that here the characters are encoded as unaccented letter + two byte code for the accent).
When I try these strings from python, e.g. doing os.stat(), they both work; but iTunes doesn't understand any of them!
I'd appreciate any hints on how to enter these names in the m3u file so that iTunes can read it. Thanks!I know nothing about "m3u" files and how iTunes interprets the file names in them, but if it is not a relative/absolute path problem, then how about just putting the raw file names (not the ones with backslash escape) in m3u file? For example, just put
Voilà l'été.mp3
in m3u?
As for Unicode encoding, HFS+ file system uses the "decomposed form" for accented characters. This means, as you write, à is hex "61 cc 80" in UTF-8, i.e., "a + COMBINING GRAVE ACCENT". The pre-composed form is hex "c3 a0". But my experience is that in most cases both pre-composed and decomosed forms work at the user level (not at the lowest file system level). -
No values found for text with replcement path
Hi Guys,
I made a query header to replace with the fiscal year/period dynamically. Query has restricted
key figures for current month and previous month.
When I execute this it is showing the current and previous month details but it is not showing the
fiscal year/period in query(description) header. It is showing the same technical name like
&ZFISPER&.
I have seen other postings in sdn and restricted the compunded characterstics in query.
If I restrict the fiscal year period in filter it is reflecting in query header but I'm not getting the previous
month values. Previous month values are showing blank. It is replacing in restricted key figure header
but not working in query description.
Can any one through me some light here?
Thanks
PrasadHello,
You cannot place in filter as it will restrict to current month only and hence ur previous month will be blank obviously.
In 7.O, it is possible to use. replacement path from infoobject or from variable as well!
variable (current month text variable)may suit in your case.
or
You can try some formatting options in teh workbook to achieve this
or
You can try to convince client that u will display the current month and previous month in their respective colums instead of Query Description.
Reg,
Dhanya -
DBMS_CRYPTO MD5 hash value does not match 3rd party MD5 free tool
Hello,
I am using Oracle Version: 11.2.4.
I have a problem where the MD5 value from DBMS_CRYPTO does not match the hash value from 3rd party MD5 free tool (MD5 Checksum Calculator 0.0.5.58 or WinMD5Free v1.20) and also the MD5 hash value calculated by an ingestion tool where I am transferring files to. The MD5 hash value that the ingestion tool calculates is the same as the 3rd party MD5 free tools I have. This occurs only on some of the XML files that I generate using XSQL(xmlserialize, xmlagg, xmlelement, etc.) and DBMS_XSLPROCESSOR on a Linux OS. The XML files are transferred from the Unix OS to my Windows 7 OS via filezilla.
I found a thread on this forum that also had a similar issue so I copy/paste the java functions. They are listed below(both are the same expect for the character set):
create or replace java source named "MD5_UTF_8" as
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.sql.Clob;
import java.sql.Blob;
public class MD5_UTF_8 {
private static final byte [] hexDigit = {
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
/** Converts a byte array to a hex string
* Returns an empty string if the byte array is null
public static final String toHexString(byte [] bytes) {
if (bytes == null) return new String("");
StringBuffer buf = new StringBuffer(bytes.length * 2);
for (int i = 0; i < bytes.length; i++) {
buf.append((char) hexDigit[((bytes >>> 4) & 0x0F)]);
buf.append((char) hexDigit[(bytes & 0x0F)]);
return buf.toString();
// Convert Hex String to Byte Array
public static final byte[] byteArrayFromHexString(String str) {
byte[] bytes = new byte[str.length() / 2];
for (int i = 0; i < bytes.length; i++)
bytes = (byte) Integer.parseInt(str.substring(2 * i, 2 * i + 2), 16);
return bytes;
public static String getMD5HashFromClob(Clob inhalt) throws Exception{
MessageDigest algorithm;
StringBuffer hexString;
String s = null;
String salida = null;
int i;
byte[] digest;
String tepFordigest = inhalt.getSubString(1L, (int)inhalt.length());
try {
algorithm = MessageDigest.getInstance("MD5_UTF_8");
algorithm.reset();
algorithm.update(tepFordigest.getBytes("UTF-8"));
digest = algorithm.digest();
s = toHexString(digest);
} catch (java.security.NoSuchAlgorithmException nsae) {
s = "No es posible cifrar MD5";
return s;
sho err
alter java source "MD5_UTF_8" compile
sho err
CREATE OR REPLACE FUNCTION get_md5_UTF_8_CLOB(inhalt CLOB) RETURN VARCHAR2 DETERMINISTIC
AS LANGUAGE JAVA
name 'MD5_UTF_8.getMD5HashFromClob(java.sql.Clob) return java.lang.String';
create or replace java source named "MD5" as
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.sql.Clob;
import java.sql.Blob;
public class MD5 {
private static final byte [] hexDigit = {
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
/** Converts a byte array to a hex string
* Returns an empty string if the byte array is null
public static final String toHexString(byte [] bytes) {
if (bytes == null) return new String("");
StringBuffer buf = new StringBuffer(bytes.length * 2);
for (int i = 0; i < bytes.length; i++) {
buf.append((char) hexDigit[((bytes >>> 4) & 0x0F)]);
buf.append((char) hexDigit[(bytes & 0x0F)]);
return buf.toString();
// Convert Hex String to Byte Array
public static final byte[] byteArrayFromHexString(String str) {
byte[] bytes = new byte[str.length() / 2];
for (int i = 0; i < bytes.length; i++)
bytes = (byte) Integer.parseInt(str.substring(2 * i, 2 * i + 2), 16);
return bytes;
public static String getMD5HashFromClob(Clob inhalt) throws Exception{
MessageDigest algorithm;
StringBuffer hexString;
String s = null;
String salida = null;
int i;
byte[] digest;
String tepFordigest = inhalt.getSubString(1L, (int)inhalt.length());
try {
algorithm = MessageDigest.getInstance("MD5");
algorithm.reset();
algorithm.update(tepFordigest.getBytes());
digest = algorithm.digest();
s = toHexString(digest);
} catch (java.security.NoSuchAlgorithmException nsae) {
s = "No es posible cifrar MD5";
return s;
sho err
alter java source "MD5" compile
sho err
CREATE OR REPLACE FUNCTION get_md5_CLOB(inhalt CLOB) RETURN VARCHAR2 DETERMINISTIC
AS LANGUAGE JAVA
name 'MD5.getMD5HashFromClob(java.sql.Clob) return java.lang.String';
I created the above java functions and added the calls to them in my package to see what hash values they would produce but I am getting "ORA-29532: Java call terminated by uncaught Java exception: java.nio.BufferOverflowException " the XML is about 60mb.
package code sniippets:
declare
l_hash raw(2000);
l_checksum_md5 varchar2(2000);
l_checksum_md5_utf_8 varchar2(2000);
Begin
t_checksum := lower(RAWTOHEX(dbms_crypto.hash(src=>l_clob,typ=>dbms_crypto.hash_md5)));
l_hash := get_md5_CLOB (l_clob);
l_checksum_md5 := lower(rawtohex(l_hash));
l_hash := get_md5_UTF_8_CLOB (l_clob);
l_checksum_md5_UTF_8 := lower(rawtohex(l_hash));Please help,
Thank You in advance
Don
Edited by: 972551 on Nov 21, 2012 12:18 PM
Edited by: sabre150 on Nov 21, 2012 11:06 PM
Moderator action : added [code ] tags to format properly. In future please add them yourself.>
I have a problem where the MD5 value from DBMS_CRYPTO does not match the hash value from 3rd party MD5 free tool (MD5 Checksum Calculator 0.0.5.58 or WinMD5Free v1.20) and also the MD5 hash value calculated by an ingestion tool where I am transferring files to. The MD5 hash value that the ingestion tool calculates is the same as the 3rd party MD5 free tools I have.
I found a thread on this forum that also had a similar issue so I copy/paste the java functions.
>
And in that thread (Re: MD5 HASH computed from DBMS_CRYPTO does not match .NET MD5 I provided the reason why DBMS_CRYPTO may not match hashes produced by other methodologies.
I have no idea why you copied and posted all of that Java code the other poster and I provided since code has NOTHING to do with the problem you say you are having. Thte other poster's question was how to write Java code that would produce the same result as DBMS_CRYPTO.
You said your problem was understanding why DBMS_CRYPTO 'does not match the hash value from 3rd party MD5 free tool ...'. and I answered that in the other forum.
>
The Crypto package always converts everything to AL32UTF8 before hashing so if the .NET character set is different the hash will likely be different.
See DBMS_CRYPTO in the PL/SQL Packages and Types doc
http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_crypto.htm
If you look at the spec header for the DBMS_CRYPTO package it shows this note:
-- Prior to encryption, hashing or keyed hashing, CLOB datatype is
-- converted to AL32UTF8. This allows cryptographic data to be
-- transferred and understood between databases with different
-- character sets, across character set changes and between
-- separate processes (for example, Java programs).
-- If your 3rd party MD5 free tool (MD5 Checksum Calculator 0.0.5.58 or WinMD5Free v1.20) do not use the AL32UTF8 character set then the hashes will likely be different. You can't modify DBMS_CRYPTO so if the hashes need to match you need to use 3rd party tools that either use the correct character set or can be configured to use the correct character set.
The problem in the other thread was how to WRITE Java code that uses the correct character set and I showed that OP how to do that.
So unless you are writing your own Java code all of that code you copied and pasted is useless for your use case. -
Inventory Valuated Stock Value is not matching with R/3
Dear Friends,
we are in a big mess.Needed your help urgently
We are in sap netweaver 2004s.We are implementing the standard business content only for one of our client.We have loaded the Inventory data into BW by following "How to handle the Inventory Management" document.
We have loaded the inventory data into 0IC_C03 using standard transferrules and update rules.
The sequence we followed as:
IN R/3
Filled the setup tables for during the posting free time(non-business hours)
Stock intialization
Material Movements
Evaluations
IN BW
We had loaded the data into only 0IC_C03 cube using standard update rules(no changes done)
2LIS_03_BX-Generate intial stock with no marker update unchecked
2LIS_03_BF-Full update with no marker update checked
2LIS_03_UM-Full update with no marker update checked
When we compared the data between R/3 and BW they are many materials "Valuated Stock Value" is not matching with R/3.For some materials value is matching with R/3 but for some other materials its not matching with R/3.Some materials are showing the negative figures for Valuated Stock Value.
But the valuated quantity value is exactly matching with R/3 for all the materials.
We have tryed to many ways in the past 10 days to find out the solution.We have followd the notes 589024 and implemented the formula.But no luck so far.
Needed your help..Any suggestions would be highly appreciated.
Please help us with your inputs.
Thanks in advance.
Regards
SoujanyaHi Sudheer,
No We haven't implemented this note.
In start routine we already have the first start routine in the note.
INSERT BEGIN
loop at DATA_PACKAGE.
if DATA_PACKAGE-stockcat eq 'V' or
DATA_PACKAGE-stocktype eq 'V'.
delete DATA_PACKAGE.
endif.
endloop.
if abort is not equal zero, the update process will be canceled
ABORT = 0.
INSERT END
We should comment the above start routine and follow the remaining section as below?
==========================================================
Notes:
However, if you want a report of these consumption values, proceed as follows:
1. Do not use the start routine listed above.
2. Create two new key figures (cumulative values):
1. Material consumption value (ZVERWERT, for example) with unit 0BASE_UOM
2. Material consumption quantity (ZVERMENGE, for example) with unit 0LOC_CURRCY
3. Include these in the InfoCube definition.
4. Update these key figures from 2LIS_03_BF as follows:
-> material consumption value:
IF ( COMM_STRUCTURE-processkey EQ '100' "Other Issues
OR COMM_STRUCTURE-processkey EQ '101' "Returns / Vendor
OR COMM_STRUCTURE-processkey EQ '104' "Material Transfer
OR COMM_STRUCTURE-processkey EQ '105' "Stock Adjustment InvD
OR COMM_STRUCTURE-processkey EQ '106' "Stock Adjustment Other
OR COMM_STRUCTURE-processkey EQ '110' ) "Issues from Stock
"Transfers
AND COMM_STRUCTURE-bwapplnm EQ 'MM'
only movements which are relevant for stock control
AND COMM_STRUCTURE-cppvlc <> 0
AND COMM_STRUCTURE-stockcat EQ 'V'
AND COMM_STRUCUTRE-stocktype EQ 'V'.
result value of the routine
RESULT = -1 * COMM_STRUCTURE-cppvlc.
if the returncode is zero, the result will be updated
RETURNCODE = 0.
ELSEIF ( COMM_STRUCTURE-processkey EQ '000' "Other Receipts
OR COMM_STRUCTURE-processkey EQ '001' "Goods Receipt/Vendor
OR COMM_STRUCTURE-processkey EQ '004' "Material Transfer/"Receipt
OR COMM_STRUCTURE-processkey EQ '005' "Stock Adjustment InvD
OR COMM_STRUCTURE-processkey EQ '006' "Stock Adjustment Other
OR COMM_STRUCTURE-processkey EQ '010' ) "Receipt from Stock
"Transfer
only movements which are relevant for stock control
AND COMM_STRUCTURE-cppvlc <> 0
AND COMM_STRUCTURE-stockcat EQ 'V'
AND COMM_STRUCUTRE-stocktype EQ 'V'.
result value of the routine
RESULT = COMM_STRUCTURE-cppvlc.
if the returncode is zero, the result will be updated
RETURNCODE = 0.
ELSE.
if the returncode is not equal zero, the result will not be updated
RETURNCODE = 4.
ENDIF.
if abort is not equal zero, the update process will be canceled
ABORT = 0..
-> material consumption quantity:
The code is the same, but COMM_STRUCTURE-cpquabu replaces COMM_STRUCTURE-cppvlc.
-> The characteristic value calculation is the same for the other key figures.
5. Update these key figures from the 2LIS_03_UM in the same way.
======================================================= -
Problem in file sender adapter for newline character
Hi All,
I'm trying to read a file of only one record with the following fields.
Name
Age
Place
<b>Each field is seperated by a new line</b> which is the cause of the problem.
<b>The problem is the value 'nl' for x.fieldSeperator is not been recognised in file sender adapter.</b>
The adapter creates a new record (new XML) for each individual field seperated by new line.
<b>I've tried even with the corresponding hexadecimal values '0x0a' and '0x0d'.</b>
Looking for some help.
Thanks,
Joe.Hi Shabarish,
Thanks for your reply. But I tried that too already... It also didn't work..
File adapter is successful... But it generates seperate records for each fields that's wat the prob is..
Thanks,
Joe. -
Problem in updating values in hashmap
I have a hashmap(key,value), where key is a String and value is an ArrayList. It has following values:
{500, [GRES]}
{600, [GRES]}
Now i check for the key 500 in the hashmap and want to update the value ArrayList for it with [GRES,TOEC].
For doing this i have written code as follows:
if(hashmap.containsKey("500")) {
ArrayList hashDoc = (ArrayList) hashmap.get(500);
hashDoc.add("TOEC");
hashmap.put(500,hashDoc);
}The problem i am facing with this code is that the value for key 600 is also changing to [GRES,TOEC], which i don't want.
I just want to update the value for key 500.
What should i do?Though there does not seem any problem with your code, I tried to simulate the same.
public class HashMapDemo {
public static void main(String[] args) {
ArrayList l1 = new ArrayList();
l1.add("1");
ArrayList l2 = new ArrayList();
l2.add("2");
HashMap x = new HashMap();
x.put("500", l1);
x.put("600", l2);
if(x.containsKey("500")) {
ArrayList tem = (ArrayList)x.get("500");
tem.add("1.2");
//x.put("500", tem);
System.out.println(l1);
System.out.println(l2);
}OutPut:
[1, 1.2]
[2]
Maybe you are looking for
-
Error getting application exception message from client EJB 3
Hi, somebody nkow what is the error? I have this simple session bean deploy in a jboss 4.0.5 GA application server My interface: package server.ejb.usuarios; import javax.ejb.Remote; @Remote public interface Prueba { public void getError() throw
-
1.1 bug: Import window from Canon XT not sorted by date correclty
This was in 1.0.1 as well. When I first plug my XT in and it goes to import the images, they are not sorted correctly. Clicking on the thumbnail will show that the image dimensions and date/time are that of the the thumbnail, and not the original ima
-
Lower Case in Elements 9?
My text is stuck in Caps -- I can't get lowercase text. I can't figure out how to reset my preferences.
-
We have an interesting situation. With files stored on a Windows-based server and users on Macs, we have been able to access the same file from multiple machines at the same time. I thought this was prohibited by the IDLK process. Has anyone encounte
-
Any way to avoid large dbtmp files...
Hi, I'm fairly new to InDesign and I'm creating a vbscript to add text to linked textframes, styling by applying stylesheets as I go. InDesign is producing a massive dbtmp file as the script runs. The file appears to be so big as it is storing undo l