How to declare constant to be used trhough WebDynpro??
Hi,
I'm new to WEbDynpro
How to set a string constant to be used through my WebDynpro project like in other programming language ??
Thanks in advance...
Hi,
If u want to declare anything as a global variable then u have to declare it inside the :
//@@begin others
String name = "Sample";
//@@end
If u give this code inside the view controller then its scope will be available till that view.If u declare this inside the comp.ctrl then it will be available till the comp.ctrl resides.
If u want more reference tell me i will provide u with the available links.
Hope this helps u,
Regards,
Rathna.
Similar Messages
-
How to create a table to use in webdynpro ABAP
Hi Guys,
Can anybody let me know how to create a table to use in webdynpro ABAP. I am new to ABAP. It would appreciable if i get useful answer. Thanks In Advance
Regards
RaviHi! You can use transaction code SE11. Please refer to http://help.sap.com/saphelp_nw70/helpdata/en/6c/f2934259a5c66ae10000000a155106/frameset.htm
Please note that table name should start with 'Y' or 'Z' - by SAP naming conventions object names starting with 'Y' and 'Z' are reserved for customer application development.
Please reward points if helpful -
How to declare constant across a function group?
Hi,
I want to define constants for use within a whole function group. How could it be done?
Thanks,
SaidYou can maintain constansts or global variable in the 'Global Data' of function group.
Please go to the function group through SE37 transaction and select display or change. in the Popup select for mainprogram in the mainprogram you can see the a include program which will be with 'Global Data'. this is the section where you can maintain the global variables.
Ex;
include lwbabaptop. " Global Data
Thanks, -
How to declare worker manager when using ejb-gen (weblogic 9.x)
I want to declare a local worker manager for one of my application.
My ejb-jar.xml file is generated with ejbgen, and I can't find anything related to worker manager declaration in ejbgen documentation
Is it possible to achieve this configuration requirement ?
Thanks.Hi,
Create a WorkManager from AdminConsole with name *"MyWorkManager"*. then add the following Annotation in your EJBGen Ejb.
Try the Annotation Like this:
import weblogic.ejbgen.Session;
@Session( <font color=red><b>dispatchPolicy = "MyWorkManager"</b></font>, ejbName = "TestSB")
Thanks
Jay SenSharma
http://jaysensharma.wordpress.com (WebLogic Wonders Are Here) -
How to add OVS to ItemLIstBox using sap webdynpro java
Hi All,
is it possible to add "OVS to ItemListBox ",
if possible could you send me the process.
Thanks and Regards,
Srinivas.Ho Rius,
Here is the sample code,
private RoleManager roleManager = null;
roleManager = (RoleManager)Platform.getService(RoleManager.class);
Long usr_key = (Long)user.getAttribute("usr_key");
Set<String> userKeysForRoles = new HashSet<String>();
userKeysForRoles.add(String.valueOf(usr_key));
String roleKey = (String)roles.get(0).getAttribute(RoleManagerConstants.ROLE_KEY);
// grant Role
roleManager.grantRole(roleKey, userKeysForRoles);
//Revoke role
roleManager.revokeRoleGrant(roleKey, userKeysForRoles, false);
Thanks,
Saurabh Tripathi -
How to Declare Arrays in bpel and use them as acollection
Hi,
I Am new to Bpel, I had created an empty Bpel Process and configured file adapter to a directory, In my text file i have 3 records with four columns, each column seperated by ',' and each record seperated by "EOL(end of line)", Below is the xsd file generated by the native format xsd builder, taken a recieve activity to recieve the contents of file from file adapter.
So all the data which is in the file will be there in recieve activity.
FileContents
55555,rgfdgsd,gfdgfdg,23
66666,retretret,trtertg,21
77777,rtrttreter,trtter,23
My Question is
I want to compare whether value of C1 = '55555' and if the value is equal to 55555 then that record with c1=55555 has to be inserted into database by using Arrays
How to compare the value of c1 through bpel functions.
with java i have to use the logic similar to this by using Xpath
getElement by tagname(c1);- it will give all the elements with tagname c1, three records are there with tagname c1 (c1=55555,c1=66666,c1=77777), we have to iterate through the elemnts and check whether the value iof c1='55555' and get the whole parent block which contains values of c1,c2,c3,c4 and insert that to database
What variables we have to use to get the Similar logic in bpel
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
targetNamespace="http://TargetNamespace.com/FileAdapter"
xmlns:tns="http://TargetNamespace.com/FileAdapter"
elementFormDefault="qualified"
attributeFormDefault="unqualified" nxsd:encoding="ASCII" nxsd:stream="chars" nxsd:version="NXSD">
<xsd:element name="Associates">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Associate" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="C1" type="xsd:double" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy=""">
</xsd:element>
<xsd:element name="C2" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy=""">
</xsd:element>
<xsd:element name="C3" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy=""">
</xsd:element>
<xsd:element name="C4" type="xsd:double" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy=""">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
I want to do it by using Arrays,
Please post the step by step procedure like
How to declare an Array?
How to iterate the results in recieve acticity of file adapter and put them to array?
How to compare the values in array with our desired value?
Please Look into this and suggest me the solution.
RegardsI think it is a good option to use transformations. Do you have any critical reason why you want to do this using array?
Little explanation below for your questions.
As per my understanding from variable is the recieve activity variable and to variable is the Array variable is it right?
Yes. Here I was try to build my array from the different source system data. This will append data to the array variable.
How can we declare an array variable in bpel(to variable) with name as Variable_Array, part as payload and query as ArrayList?
*Any element that can hold another element can be a array.
For example if element A is declared as sequence of element B type, then A acts as a array for B*
Could you please explain this also, what is from variable? and what is to variable?
+<assign name="Assign_XPath_For_Array">+
+<copy><from expression="concat('/ns1:ArrayList/ns2:ArrayElem') "/><to variable="Variable_Xpath"/></copy>+
+</assign>+
what is the type of to variable "Variable_Xpath"(String or int etc)?
This creates a dynamic Xpath and store in some variable here. Here the variable is called Variable_Xpath which is a string
similarly what is the type of to variable?
+<assign name="Assign_Read_Array">+
+<copy>+
+<from expression="bpws:getVariableData('Variable_Array','payload',bpws:getVariableData('Variable_Xpath'))"/>+
+<to variable="Variable_Read_Array_Element" query="/ns1: ABC"/>+
+</copy>+
+</assign>+
To variable type is the variable that I read from the Array.
*For example if A is the array holding B, then the to variable is B and from is doing A[counter]*
Every Little Helps
Kalidass Mookkaiah
http://oraclebpelindepth.blogspot.com/ -
How Attributes declared in Component level can be used in All the views
How Attributes declared in Component level can be used in All the views
For Example :
say : context type ref to if_wd_context_node.
is declared at component controller level and check box public is checked !!
How can we use this any view in same WDP Component..
For suppose : in this case
We want to get the ref of child node using above declared attribute..
How is it possible?
Say in detailYou can do this by doing the exact same like you did with the if_wd_context_node.
1. Define attribute in Comp Controller and set it PUBLIC.
2. Access the attribute over the reference of the comp controller, i.e. wd_this within the comp controller itself or wd_comp_controller within somewhere else in the component.
So if you have, lets say, this defined as attribute in your comp controller:
Z_MY_TABLE_REF [X] TYPE REF TO [X] PUBLIC CL_WD_TABLE.
And then you want to catch the reference into a local variable within a method or the like within a view:
DATA: lo_my_table_ref TYPE REF TO CL_WD_TABLE.
lo_my_table_ref = wd_comp_controller->z_my_table_ref.
Lekha has already said so as well, I don't really understand where the problem is
Cheers, Lukas -
How to declare global variables using another global variable in ODI
I am declaring a gloabal variable using another global variable.
say for example:
I have a global variable empid.
I am decalaring another global variable empname in refreshing tab of global variables and the select statment is
select empname from emp where empno = #GLOBAL.empid -------if i write like this i am getting error as invalid character.
select empname from emp where empno = '#GLOBAL.empid'-------if i write like this i am getting error as invalid number.
I have kept the datatype as numeric and action as non persistent
Please help
Thank you in advance.Hi,
You cant test/refresh empname standalone.
You need to create a new package drag and drop both variables and make them as refresh variable and execute that package and test.
Flow,
empid----> empname
Thanks,
Guru -
Hi
I need to declare olevar variable and use it. Can anybody kindly help?
ThanksDECLARE
scan_ole oleobj;
edit_ole oleobj;
file_ole oleobj;
ole_filetype olevar := to_variant(1);
ole_pagetype olevar := to_variant(1);
ole_compressiontype olevar :=to_variant(2);
ole_compressioninfo olevar := to_variant(8);
dummy NUMBER;
lst ole2.list_type;
scancomplete BOOLEAN;
a NUMBER;
b VARCHAR2 (2000);
v_error VARCHAR2 (50);
scanerror EXCEPTION;
PRAGMA EXCEPTION_INIT (scanerror, -20010);
BEGIN
forms_ole.ACTIVATE_SERVER ('ocx');
scan_ole := forms_ole.GET_INTERFACE_POINTER ('OCX');
IF imaging_dimgscan.scanneravailable (scan_ole) <> 0
THEN
dummy := imaging_dimgscan.startscan (scan_ole);
scancomplete := TRUE;
ELSE
scancomplete := FALSE;
v_error := 'Scanner not available';
RAISE scanerror;
END IF;
IF scancomplete
THEN
forms_ole.ACTIVATE_SERVER ('EDIT');
edit_ole := forms_ole.GET_INTERFACE_POINTER ('EDIT');
b := imaging_dimgscan.destimagecontrol (edit_ole);
imaging_dimgscan.destimagecontrol (edit_ole, b);
a := imaging_dimgscan.closescanner (scan_ole);
GO_BLOCK ('SCANNED_IMAGES');
:SYSTEM.message_level := 25;
forms_ole.ACTIVATE_SERVER ('FILE');
FILE_ole := forms_ole.GET_INTERFACE_POINTER ('FILE');
IMAGING_DIMGEDIT.SAVEAS(edit_ole,'C:\scan0001.tif');
--IMAGING_DIMGEDIT.SaveAs( edit_ole,'C:\scan0001.tif',ole_filetype,ole_pagetype,ole_compressiontype);
READ_IMAGE_FILE ('C:\scan0001.tif', 'ANY', 'SCANNED_IMAGES.IMAGE_DATA');
IF NOT FORM_SUCCESS
THEN
v_error := ' Could not read image file';
:SYSTEM.message_level := 0;
RETURN;
END IF;
:SYSTEM.message_level := 0;
IF :scanned_documents.zoom_amount IS NOT NULL
THEN
IMAGE_ZOOM ('SCANNED_IMAGES.image_data',
zoom_percent,
:scanned_documents.zoom_amount
END IF;
:scanned_images.page_count := TO_NUMBER (:GLOBAL.pagecount);
:scanned_images.description := 1;
:scanned_images.page_number := 1;
END IF;
EXCEPTION
WHEN scanerror
THEN
a := imaging_dimgscan.closescanner (scan_ole);
MESSAGE (v_error || ' ' || SQLCODE || ' ' || SQLERRM);
WHEN OTHERS
THEN
a := imaging_dimgscan.closescanner (scan_ole);
MESSAGE (v_error || ' ' || SQLCODE || ' ' || SQLERRM);
END;
The called method
/*PROCEDURE SaveAs(interface OleObj, Image VARCHAR2, FileType OleVar := OleVar_Null,
PageType OleVar := OleVar_Null, CompressionType OleVar := OleVar_Null, CompressionInfo OleVar := OleVar_Null,
SaveAtZoom OleVar := OleVar_Null) IS
BEGIN
Init_OleArgs(6);
Add_OleArg(Image);
Add_OleArg(FileType);
Add_OleArg(PageType);
Add_OleArg(CompressionType);
Add_OleArg(CompressionInfo);
Add_OleArg(SaveAtZoom);
Call_Ole(interface, 343);
End;
Where do I go wrong?? The first saveAs works but not the second one!!! -
How to change net Price by using BAPI_PO_change
Hi experts..
How i can change net price by using bapi_po_change.
What parameters i have to pass in this fm.
if possible please tell me , which table this FM will update.
Thanks.
I will award points for all help.See the below code and have tested and it works great..
REPORT ZTEST_PG_07 NO STANDARD PAGE HEADING
MESSAGE-ID z9_msg_prash.
Tables Declaration ****
TABLES: ekpo.
Variables Declaration ****
DATA: v_purchaseorder TYPE bapimepoheader-po_number.
DATA: v_ebelp TYPE ekpo-ebelp.
Constants Declaration ****
CONSTANTS: x VALUE 'X'.
Internal Tables Declaration ****
DATA: it_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
DATA: it_poitem TYPE STANDARD TABLE OF bapimepoitem WITH HEADER LINE.
DATA: it_poitemx TYPE STANDARD TABLE OF bapimepoitemx WITH HEADER LINE.
DATA: wa_return TYPE bapiret2.
Selection Screen ****
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: p_ebeln LIKE ekpo-ebeln OBLIGATORY.
PARAMETERS: p_ebelp LIKE ekpo-ebelp.
PARAMETERS: p_menge LIKE ekpo-menge.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN
AT SELECTION-SCREEN ON p_ebeln.
IF p_ebeln IS NOT INITIAL.
SELECT SINGLE ebeln INTO v_purchaseorder FROM ekpo
WHERE ebeln = p_ebeln.
IF sy-subrc <> 0.
MESSAGE e002.
ENDIF.
ELSE.
MESSAGE e005.
ENDIF.
AT SELECTION-SCREEN ON p_ebelp.
if p_ebeln is not initial.
IF p_ebelp IS NOT INITIAL.
SELECT SINGLE ebelp INTO v_ebelp FROM ekpo
WHERE ebeln = p_ebeln AND ebelp = p_ebelp.
IF sy-subrc <> 0.
MESSAGE e003.
ENDIF.
ELSE.
MESSAGE e006.
ENDIF.
endif.
START-OF-SELECTION
START-OF-SELECTION.
v_purchaseorder = p_ebeln.
it_poitem-po_item = p_ebelp.
it_poitem-quantity = p_menge.
it_poitem-net_price = '20.00'.
APPEND it_poitem.
it_poitemx-po_item = p_ebelp.
it_poitemx-po_itemx = x.
it_poitemx-quantity = x.
APPEND it_poitemx.
*&----Calling BAPI function module
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
purchaseorder = v_purchaseorder
testrun = x
TABLES
return = it_return
poitem = it_poitem
poitemx = it_poitemx.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = space
IMPORTING
RETURN =
END-OF-SELECTION
END-OF-SELECTION.
LOOP AT it_return INTO wa_return.
WRITE:/ wa_return-message.
ENDLOOP.
Thanks
Seshu -
How to declare and initialize a STRING ARRAY (assign strings to array elements)
How to declare and initialize a STRING ARRAY (assign desired strings to elements of an array, for example "abc", "def", "ghi", "jkl", etc.) in LabVIEW? I saw a "string array" block in help, but could not find it in the function palette. Does a spreadsheet string have to be in a file (or can it be in a string constant block)? Thank you.
Hi,
you can do it in several ways:
1. Direct way: Create string array control on front panel and type strings in its elements
2. Programmatically 1: Create string array indicator (or local variable of control), right click on it in block diagram, select "Create constant" from drop down menu. The array constant will appear. Now type values in this constant's strings
3. Programmatically 1: Use "Build array", "Replace array subset", "Insert into array" or "Initialize array" functions from "Functions->Array" palette.
And of course you can combine all of these methods.
Good luck.
Oleg Chutko. -
How to declare internal table in SMARTFORM
Hi experts,
I have an Internal table in my program and I want to declare in the smartform as well. How and where can I declare? Should I use global definitions and tpyes tab? How can I pass the content of the internal table to the smartform?Click Global Defiitions
In TYPES :
TYPES : BEGIN OF gty_add,
name1 TYPE ad_name1, " name1
city1 TYPE ad_city1, " City
country TYPE adrc-country, "Coutnry
post_code1 TYPE ad_pstcd1, " post code
street TYPE ad_street, " street
house_num1 TYPE ad_hsnm1, " house number
tel_number TYPE ad_tlnmbr1," tele number
END OF gty_add.
In Global DATA
GT_ADD TYPE TABLE OF GTY_ADD ( Internal table)
WA_ADD TYPE GTY_ADD ( work area) -
How To Perform Lot Split Transactions Using Transaction Open Interface (MTI)
Can anyone give me some guidance on how to perform lot split transaction using MTI?
I am using the following code:
DECLARE
l_transaction_type_id NUMBER := 83;
l_transaction_action_id NUMBER := 41;
l_transaction_source_type_id NUMBER := 13;
l_org_id NUMBER := 1884;
l_txn_header_id NUMBER;
l_txn_if_id1 NUMBER;
l_txn_if_id2 NUMBER;
l_txn_if_id3 NUMBER;
l_parent_id NUMBER;
l_sysdate DATE;
l_item_id NUMBER :=287996;
l_user_id NUMBER;
l_distribution_account_id NUMBER;
l_exp_date DATE;
BEGIN
--For Lot Merge, there should be only one resultant lot.
--The transaction_quantity populated in MTI/MTLI should be the entire
--quantity that is available to transact for the org/sub/item/locator/LPN in
--that particular lot number.
--Get transaction_header_id for all the MTIs
SELECT APPS.mtl_material_transactions_s.NEXTVAL
INTO l_txn_header_id
FROM sys.dual;
--Get transaction_interface_id of resultant record
SELECT APPS.mtl_material_transactions_s.NEXTVAL
INTO l_txn_if_id1
FROM sys.dual;
l_parent_id := l_txn_if_id1;
l_sysdate := SYSDATE;
l_user_id := -1; --substitute with a valid user_id
l_distribution_account_id := NULL; --needed for lot translate
l_exp_date := NULL; --set if required
--Populate the MTI record for resultant record
INSERT INTO MTL_TRANSACTIONS_INTERFACE
transaction_interface_id,
transaction_header_id,
Source_Code,
Source_Line_Id,
Source_Header_Id,
Process_flag,
Transaction_Mode,
Lock_Flag,
Inventory_Item_Id,
revision,
Organization_id,
Subinventory_Code,
Locator_Id,
Transaction_Type_Id,
Transaction_Source_Type_Id,
Transaction_Action_Id,
Transaction_Quantity,
Transaction_UOM,
Primary_Quantity,
Transaction_Date,
Last_Update_Date,
Last_Updated_By,
Creation_Date,
Created_By,
distribution_account_id,
parent_id,
transaction_batch_id,
transaction_batch_seq,
lpn_id,
transfer_lpn_id
VALUES
l_txn_if_id1, --transaction_header_id
l_txn_header_id, --transaction_interface_id
'INV', --source_code
-1, --source_header_id
-1, --source_line_id
1, --process_flag
3, --transaction_mode
2, --lock_flag
l_item_id, --inventory_item_id
null, --revision
l_org_id, --organization_id
'EACH', --subinventory_code
1198, --locator_id
l_transaction_type_id, --transaction_type_id
l_transaction_source_type_id, --transaction_source_type_id
l_transaction_action_Id, --l_transaction_action_id
100000, --transaction_quantity
'EA', --transaction_uom
100000, --primary_quantity
l_sysdate, --Transaction_Date
l_sysdate, --Last_Update_Date
l_user_id, --Last_Updated_by
l_sysdate, --Creation_Date
l_user_id, --Created_by
l_distribution_account_id, --distribution_account_id
l_parent_id, --parent_id
l_txn_header_id, --transaction_batch_id
2, --transaction_batch_seq
NULL, --lpn_id (for source MTI)
NULL --transfer_lpn_id (for resultant MTIs)
--Insert MTLI corresponding to the resultant MTI record
INSERT INTO MTL_TRANSACTION_LOTS_INTERFACE(
transaction_interface_id
, Source_Code
, Source_Line_Id
, Process_Flag
, Last_Update_Date
, Last_Updated_By
, Creation_Date
, Created_By
, Lot_Number
, lot_expiration_date
, Transaction_Quantity
, Primary_Quantity
VALUES (
l_txn_if_id1 --transaction_interface_id
, 'INV' --Source_Code
, -1 --Source_Line_Id
, 'Y' --Process_Flag
, l_sysdate --Last_Update_Date
, l_user_id --Last_Updated_by
, l_sysdate --Creation_date
, l_user_id --Created_By
, 'Q0000.1' --Lot_Number
, l_exp_date --Lot_Expiration_Date
, 100000 --transaction_quantity
, 100000 --primary_quantity
INSERT INTO MTL_TRANSACTIONS_INTERFACE
transaction_interface_id,
transaction_header_id,
Source_Code,
Source_Line_Id,
Source_Header_Id,
Process_flag,
Transaction_Mode,
Lock_Flag,
Inventory_Item_Id,
revision,
Organization_id,
Subinventory_Code,
Locator_Id,
Transaction_Type_Id,
Transaction_Source_Type_Id,
Transaction_Action_Id,
Transaction_Quantity,
Transaction_UOM,
Primary_Quantity,
Transaction_Date,
Last_Update_Date,
Last_Updated_By,
Creation_Date,
Created_By,
distribution_account_id,
parent_id,
transaction_batch_id,
transaction_batch_seq,
lpn_id,
transfer_lpn_id
VALUES
l_txn_if_id1, --transaction_header_id
l_txn_header_id, --transaction_interface_id
'INV', --source_code
-1, --source_header_id
-1, --source_line_id
1, --process_flag
3, --transaction_mode
2, --lock_flag
l_item_id, --inventory_item_id
null, --revision
l_org_id, --organization_id
'EACH', --subinventory_code
1198, --locator_id
l_transaction_type_id, --transaction_type_id
l_transaction_source_type_id, --transaction_source_type_id
l_transaction_action_Id, --l_transaction_action_id
100000, --transaction_quantity
'EA', --transaction_uom
100000, --primary_quantity
l_sysdate, --Transaction_Date
l_sysdate, --Last_Update_Date
l_user_id, --Last_Updated_by
l_sysdate, --Creation_Date
l_user_id, --Created_by
l_distribution_account_id, --distribution_account_id
l_parent_id, --parent_id
l_txn_header_id, --transaction_batch_id
3, --transaction_batch_seq
NULL, --lpn_id (for source MTI)
NULL --transfer_lpn_id (for resultant MTIs)
--Insert MTLI corresponding to the resultant MTI record
INSERT INTO MTL_TRANSACTION_LOTS_INTERFACE(
transaction_interface_id
, Source_Code
, Source_Line_Id
, Process_Flag
, Last_Update_Date
, Last_Updated_By
, Creation_Date
, Created_By
, Lot_Number
, lot_expiration_date
, Transaction_Quantity
, Primary_Quantity
VALUES (
l_txn_if_id1 --transaction_interface_id
, 'INV' --Source_Code
, -1 --Source_Line_Id
, 'Y' --Process_Flag
, l_sysdate --Last_Update_Date
, l_user_id --Last_Updated_by
, l_sysdate --Creation_date
, l_user_id --Created_By
, 'Q0000.1' --Lot_Number
, l_exp_date --Lot_Expiration_Date
, 100000 --transaction_quantity
, 100000 --primary_quantity
--Get transaction_interface_id of Source record-1
SELECT APPS.mtl_material_transactions_s.NEXTVAL
INTO l_txn_if_id2
FROM sys.dual;
--Populate the MTI record for Source record-1
INSERT INTO MTL_TRANSACTIONS_INTERFACE
transaction_interface_id,
transaction_header_id,
Source_Code,
Source_Line_Id,
Source_Header_Id,
Process_flag,
Transaction_Mode,
Lock_Flag,
Inventory_Item_Id,
revision,
Organization_id,
Subinventory_Code,
Locator_Id,
Transaction_Type_Id,
Transaction_Source_Type_Id,
Transaction_Action_Id,
Transaction_Quantity,
Transaction_UOM,
Primary_Quantity,
Transaction_Date,
Last_Update_Date,
Last_Updated_By,
Creation_Date,
Created_By,
distribution_account_id,
parent_id,
transaction_batch_id,
transaction_batch_seq,
lpn_id,
transfer_lpn_id
VALUES
l_txn_if_id2, --transaction_header_id
l_txn_header_id, --transaction_interface_id
'INV', --source_code
-1, --source_header_id
-1, --source_line_id
1, --process_flag
3, --transaction_mode
2, --lock_flag
l_item_id, --inventory_item_id
null, --revision
l_org_id, --organization_id
'EACH', --subinventory_code
1198, --locator_id
l_transaction_type_id, --transaction_type_id
l_transaction_source_type_id, --transaction_source_type_id
l_transaction_action_Id, --transaction_action_id
-200000, --transaction_quantity
'EA', --transaction_uom
-200000, --primary_quantity
l_sysdate, --Transaction_Date
l_sysdate, --Last_Update_Date
l_user_id, --Last_Updated_by
l_sysdate, --Creation_Date
l_user_id, --Created_by
l_distribution_account_id, --distribution_account_id
l_parent_id, --parent_id
l_txn_header_id, --transaction_batch_id
1, --transaction_batch_seq
NULL, --lpn_id (for source MTI)
NULL --transfer_lpn_id (for resultant MTIs)
--Insert MTLI corresponding to the Source record-1
INSERT INTO MTL_TRANSACTION_LOTS_INTERFACE(
transaction_interface_id
, Source_Code
, Source_Line_Id
, Process_Flag
, Last_Update_Date
, Last_Updated_By
, Creation_Date
, Created_By
, Lot_Number
, lot_expiration_date
, Transaction_Quantity
, Primary_Quantity
VALUES (
l_txn_if_id2 --transaction_interface_id
, 'INV' --Source_Code
, -1 --Source_Line_Id
, 'Y' --Process_Flag
, l_sysdate --Last_Update_Date
, l_user_id --Last_Updated_by
, l_sysdate --Creation_date
, l_user_id --Created_By
, 'Q0000' --Lot_Number
, l_exp_date --Lot_Expiration_Date
, -200000 --transaction_quantity
, -200000 --primary_quantity
END;the first MTI record should be the source record ...ie. it should have transaction quantity as negative.
new set of MTI records should have positive transaction quantities.
Also ensure that sum of transaction quantities for the set should be 0...
What is the error that you are getting?
Thanks,
Hrishi. -
HR abap : how to declare internal table to fetch data from 0585 infotype
Hi all ,
I am able to fetch the data from pa0585 infotype for set of employee no , but the problem is as the fields in pa0585 (like Contr to ULIP , NSC , Medical Treatment,Contribution to Certain Pension Funds so on ..) will be changed dynamically and will be displayed based on the amount value in descending order iam not able to store the values of the fileds into internal table . I dont understand how to declare the internal table ..Please help in if u have solved this kind of problem.
I shld get the output in this way ...
Emp No Name Medical treatment Contr to ULIP ....... so on
101 abc 10000 150000 .......so on
102 xyz 12000 150000 .......so on
My header shld be fixed and I shld display values in this way .... I can use write statement to display directly .
Thanks ....Hi
Decalre INFOTYPE
Goto SE37 - Find FM -
READINFOTYPE* -
How to declare in anonymous block
Declare
CURSOR c_je2acct_othr
IS
SELECT j.jemq_num, j.ml_retail_account,
-- (CASE WHEN j.exer_type = 4 THEN j.sar_shares ELSE j.shares END) shares, -- removed * -1 from sar_shares Manu 12/02/04
/* Commented 02/01/07*/
(CASE WHEN j.exer_type = 4 THEN
fn_get_shares(u.user_id,u.exer_num,u.soc_sec,j.
sar_shares)
ELSE (case when u.exer_type=2 and u.opts_exer!=u.shrs_sold and j.shares=u.shrs_sold then 0 else j.shares end)
END) shares,
-- removed * -1 from sar_shares Manu 12/02/04
j.name_first,
j.name_last, j.exer_type, j.ml_sec_num, j.ivr_plan_num,
j.exer_dt, j.grant_dt, j.user_id, j.mlu_rowid, j.settle_dt,
j.exer_num, j.plan_type, j.grant_num, j.acct_num_othr,
j.add_cancel,
/* (CASE WHEN j.exer_type = 4 THEN j.sar_cash_amount * -1 -- turned negative Manu 12/02/04 ml_retail distr
commented the above line for calculation of proceeds into other account for sar sale.
(CASE WHEN j.exer_type = 4 THEN
Pk_Xop_Citibank_Forex.fn_get_netamount(u.user_id,u.
exer_num,u.soc_sec,
u.sar_cash_amount,NVL(u.comm_value, 0),
NVL(u.tot_fee, 0),
NVL(u.multi_curr_handling_fee, 0))
-- Removed the negative as on ml_exer_upload all values are +ve.
ELSE
( (DECODE(u.exer_type,0,u.opts_exer * u.mkt_prc,u.shrs_sold * u.mkt_prc
- ( ROUND((u.opts_exer * NVL (u.opt_prc, 0)),2)
-- SPIF 39060 Added a Round of condition.
+ DECODE (NVL (u.shrs_wthld_for_taxes, 'N'),
'Y', 0,
ROUND (u.tot_tax, 2)
+ u.tot_fee
+ NVL(u.multi_curr_handling_fee,0)
+ u.comm_value
- u.backup_withholding
END ) AS gl_amt,
T.je_othr_mlacct_jemsg AS vc_trailer_desc,
u.opts_exer ,
u.shrs_sold,
u.rsu_type
FROM TB_XOP_JEMQ j, TB_ML_EXER_UPLOAD u, TB_FC_COMPY T
WHERE j.q_flag = 'N' AND u.je_flag = 'Y'
AND j.entry_dttime >= TRUNC (SYSDATE)
AND j.entry_dttime < TRUNC (SYSDATE) +1
AND j.source = 'X'
AND j.acct_num_othr != ' '
and (case when u.exer_type=2 and u.opts_exer!=u.shrs_sold then (case when j.shares=u.shrs_sold then 0 else 1 end) else 1 end)=1 FIx for PCTUP00566081
AND ( disp_flag <> 'D' OR disp_flag IS NULL ) Added by MARAN ARUNACHALAM on 01/25/2011 for PCTUP00493542 Fix
and j.current_status = '2Q' removed not required now in new plan
AND NOT EXISTS (
SELECT 1
FROM TB_XOP_JEMQ j2
WHERE j2.prev_jemq = j.jemq_num
AND source = 'T'
AND j.add_cancel = j2.add_cancel
AND j.user_id = j2.user_id
AND j.exer_num = j2.exer_num)
AND j.mlu_rowid = u.ROWID
AND 'CMS'||T.compy_acronym||'_USER' = j.user_id
ORDER BY add_cancel DESC;
v_mlac_mesg VARCHAR2(1000);
-- JE_OTHR_MLACCT_JEMSG
BEGIN
dbms_output.put_line('success');
FOR v_je2acct_othr IN c_je2acct_othr
LOOP
dbms_output.put_line('success1');
BEGIN
dbms_output.put_line('success2');
IF v_je2acct_othr.add_cancel = 'C'
THEN
dbms_output.put_line('success3');
UPDATE TB_XOP_JEMQ
SET add_cancel = DECODE(current_status,
'RJ',
add_cancel,
'C'),
q_flag = DECODE(current_status, 'RJ', q_flag, 'N'),
activ_dt = DECODE(current_status,
'RJ',
activ_dt,
SYSDATE)
WHERE prev_jemq = v_je2acct_othr.jemq_num
AND user_id = v_je2acct_othr.user_id
AND exer_num = v_je2acct_othr.exer_num
AND source ='T';
dbms_output.put_line('success4');
ELSIF v_je2acct_othr.add_cancel = 'A'
THEN
dbms_output.put_line('success5');
-- manipulating amount and shares to transfer when different exercise types
v_je2acct_othr.gl_amt :=( CASE
WHEN v_je2acct_othr.exer_type = 0 THEN 0
WHEN v_je2acct_othr.exer_type = 2 AND v_je2acct_othr.opts_exer
!= v_je2acct_othr.shrs_sold
THEN v_je2acct_othr.gl_amt
WHEN v_je2acct_othr.exer_type = 2 AND v_je2acct_othr.opts_exer =
v_je2acct_othr.shrs_sold
THEN v_je2acct_othr.gl_amt
ELSE v_je2acct_othr.gl_amt
END );
---- Commented on 11/01/2006 For Fixing 30585
/* v_je2acct_othr.shares :=( CASE
WHEN v_je2acct_othr.exer_type = 0 THEN v_je2acct_othr.opts_exer
WHEN v_je2acct_othr.exer_type = 2 AND v_je2acct_othr.opts_exer != v_je2acct_othr.shrs_sold
THEN v_je2acct_othr.opts_exer - v_je2acct_othr.shrs_sold
WHEN v_je2acct_othr.exer_type = 2 AND v_je2acct_othr.opts_exer = v_je2acct_othr.shrs_sold
THEN 0
ELSE v_je2acct_othr.shares
END );*/
---- Commented on 11/01/2006 For Fixing 30585
v_je2acct_othr.shares :=( CASE
WHEN v_je2acct_othr.exer_type = 0 THEN v_je2acct_othr.
Shares
--- Replaced opts_exer with the Shares amount from the previous journal for fixing 30585
WHEN v_je2acct_othr.exer_type = 2 AND v_je2acct_othr.opts_exer
!= v_je2acct_othr.shrs_sold and v_je2acct_othr.shares!=0 and v_je2acct_othr.plan_type <> 0 -- Added plantype condition for CQ:PCTUP00493542
THEN v_je2acct_othr.Shares - v_je2acct_othr.shrs_sold
--- Replaced opts_exer with the Shares amount from the previous journal for fixing 30585
WHEN v_je2acct_othr.exer_type = 2 AND v_je2acct_othr.opts_exer =
v_je2acct_othr.shrs_sold
THEN 0
ELSE v_je2acct_othr.shares
END );
dbms_output.put_line('success6');
IF LENGTH(TRIM(v_je2acct_othr.acct_num_othr))=8 OR TRIM(v_je2acct_othr.acct_num_othr) IS NULL
THEN
v_mlac_mesg :=NULL;
ELSE
v_mlac_mesg :='Check the ml a/c length';
dbms_output.put_line('success7');
END IF;
INSERT INTO TB_XOP_JEMQ
(jemq_num,
prev_jemq,
ml_retail_account,
wcma_shares,
shares, wcma_taxes, tax_amt,
wcma_reimburse,
reimburse_amt,
name_first,
name_last, exer_type,
ml_sec_num, wcma_bulking, bulking_amt,
ivr_plan_num,
exer_dt, grant_dt,
user_id, source,
mlu_rowid, settle_dt,
exer_num, plan_type,
grant_num,
vc_trailer_desc, rsu_type
VALUES (Pk_Xop_Get_Jemqnum.fn_xop_get_jemqnum,
v_je2acct_othr.jemq_num,
v_je2acct_othr.acct_num_othr,
-- 2nd ml_retail_account,
v_je2acct_othr.ml_retail_account,
-- move shares from old acct to 2nd acct above
v_je2acct_othr.shares,
--this is SHARES
--wcma_taxes
0,
--tax_amt,
v_je2acct_othr.ml_retail_account,
-- move gl_amt from old acct to 2nd acct above
v_je2acct_othr.gl_amt * -1,
v_je2acct_othr.name_first,
v_je2acct_othr.name_last, v_je2acct_othr.
exer_type,
v_je2acct_othr.ml_sec_num, ' ',
--wcma_bulking,
0,
--bulking_amt,
v_je2acct_othr.ivr_plan_num,
v_je2acct_othr.exer_dt, v_je2acct_othr.
grant_dt,
v_je2acct_othr.user_id, 'T',
--source
v_je2acct_othr.mlu_rowid, v_je2acct_othr.
settle_dt,
v_je2acct_othr.exer_num, v_je2acct_othr.
plan_type,
v_je2acct_othr.grant_num,
v_je2acct_othr.vc_trailer_desc,
v_je2acct_othr.
rsu_type
dbms_output.put_line('success8');
END IF;
EXCEPTION
WHEN OTHERS
THEN
Pr_Xop_Log_Errors ( 'Code :'
|| NVL(v_mlac_mesg,SQLERRM)
|| ' at '
|| USER
|| 'at sub exec block in pop_je2acct_othr'
END;
dbms_output.put_line('success9'); -- end of begin within loop
END LOOP;
--COMMIT;
EXCEPTION
WHEN OTHERS
THEN
Pr_Xop_Log_Errors ( 'Code :'
|| NVL(v_mlac_mesg,SQLERRM)
|| ' at '
|| USER
|| 'at pk_xop_jemq.pop_je2acct_othr'
dbms_output.put_line('success10');
END;}
{ORA-06550: line 10, column 31:
PL/SQL: ORA-00904: "FN_GET_SHARES": invalid identifier
ORA-06550: line 6, column 11:
PL/SQL: SQL Statement ignored
ORA-06550: line 81, column 17:
PLS-00364: loop index variable 'V_JE2ACCT_OTHR' use is invalid
ORA-06550: line 81, column 14:
PL/SQL: Statement ignored}
HI friends, as i am getting two errors when running code in the anonymous block, then how to declare that 2 errors in declare section plz guide me}Noone, will read your code unless it is formatted like below. See the comments added
DECLARE
CURSOR c_je2acct_othr
IS
SELECT j.jemq_num,
j.ml_retail_account,
-- (CASE WHEN j.exer_type = 4 THEN j.sar_shares ELSE j.shares END) shares, -- removed * -1 from sar_shares Manu 12/02/04
/* Commented 02/01/07*/
CASE
WHEN j.exer_type = 4
--"The current user is not seeing the below function fn_get_shares.Privilege issue probably.
THEN fn_get_shares(u.user_id,u.exer_num,u.soc_sec,j. sar_shares)
ELSE (
CASE
WHEN u.exer_type=2
AND u.opts_exer!=u.shrs_sold
AND j.shares =u.shrs_sold
THEN 0
ELSE j.shares
END)
END) shares,
-- removed * -1 from sar_shares Manu 12/02/04
j.name_first,
j.name_last,
j.exer_type,
j.ml_sec_num,
j.ivr_plan_num,
j.exer_dt,
j.grant_dt,
j.user_id,
j.mlu_rowid,
j.settle_dt,
j.exer_num,
j.plan_type,
j.grant_num,
j.acct_num_othr,
j.add_cancel,
/* (CASE WHEN j.exer_type = 4 THEN j.sar_cash_amount * -1 -- turned negative Manu 12/02/04 ml_retail distr
commented the above line for calculation of proceeds into other account for sar sale.
CASE
WHEN j.exer_type = 4
THEN Pk_Xop_Citibank_Forex.fn_get_netamount(u.user_id,u. exer_num,u.soc_sec, u.sar_cash_amount,NVL(u.comm_value, 0), NVL(u.tot_fee, 0), NVL(u.multi_curr_handling_fee, 0))
-- Removed the negative as on ml_exer_upload all values are +ve.
ELSE ( (DECODE(u.exer_type,0,u.opts_exer * u.mkt_prc,u.shrs_sold * u.mkt_prc )) - ( ROUND((u.opts_exer * NVL (u.opt_prc, 0)),2)
-- SPIF 39060 Added a Round of condition.
+ DECODE (NVL (u.shrs_wthld_for_taxes, 'N'), 'Y', 0, ROUND (u.tot_tax, 2) ) + u.tot_fee + NVL(u.multi_curr_handling_fee,0) + u.comm_value ) - u.backup_withholding )
END ) AS gl_amt,
T.je_othr_mlacct_jemsg AS vc_trailer_desc,
u.opts_exer ,
u.shrs_sold,
u.rsu_type
FROM TB_XOP_JEMQ j,
TB_ML_EXER_UPLOAD u,
TB_FC_COMPY T
WHERE j.q_flag = 'N'
AND u.je_flag = 'Y'
AND j.entry_dttime >= TRUNC (SYSDATE)
AND j.entry_dttime < TRUNC (SYSDATE) +1
AND j.source = 'X'
AND j.acct_num_othr != ' '
--and (case when u.exer_type=2 and u.opts_exer!=u.shrs_sold then (case when j.shares=u.shrs_sold then 0 else 1 end) else 1 end)=1 -- FIx for PCTUP00566081
--AND ( disp_flag <> 'D' OR disp_flag IS NULL ) -- Added by MARAN ARUNACHALAM on 01/25/2011 for PCTUP00493542 Fix
--and j.current_status = '2Q' -- removed not required now in new plan
AND NOT EXISTS
(SELECT 1
FROM TB_XOP_JEMQ j2
WHERE j2.prev_jemq = j.jemq_num
AND source = 'T'
AND j.add_cancel = j2.add_cancel
AND j.user_id = j2.user_id
AND j.exer_num = j2.exer_num
AND j.mlu_rowid = u.ROWID
AND 'CMS'
||T.compy_acronym
||'_USER' = j.user_id
ORDER BY add_cancel DESC;
v_mlac_mesg VARCHAR2(1000);
-- JE_OTHR_MLACCT_JEMSG
BEGIN
dbms_output.put_line('success');
FOR v_je2acct_othr IN c_je2acct_othr
LOOP
dbms_output.put_line('success1');
BEGIN
dbms_output.put_line('success2');
IF v_je2acct_othr.add_cancel = 'C' THEN
dbms_output.put_line('success3');
UPDATE TB_XOP_JEMQ
SET add_cancel = DECODE(current_status, 'RJ', add_cancel, 'C'),
q_flag = DECODE(current_status, 'RJ', q_flag, 'N'),
activ_dt = DECODE(current_status, 'RJ', activ_dt, SYSDATE)
WHERE prev_jemq = v_je2acct_othr.jemq_num
AND user_id = v_je2acct_othr.user_id
AND exer_num = v_je2acct_othr.exer_num
AND source ='T';
dbms_output.put_line('success4');
ELSIF v_je2acct_othr.add_cancel = 'A' THEN
dbms_output.put_line('success5');
-- manipulating amount and shares to transfer when different exercise types
--"You cannot assign values to the recor variable declared for a loop. Either define seperate variables or use explicit record variable"
v_je2acct_othr.gl_amt :=
CASE
WHEN v_je2acct_othr.exer_type = 0 THEN
0
WHEN v_je2acct_othr.exer_type = 2 AND v_je2acct_othr.opts_exer != v_je2acct_othr.shrs_sold THEN
v_je2acct_othr.gl_amt
WHEN v_je2acct_othr.exer_type = 2 AND v_je2acct_othr.opts_exer = v_je2acct_othr.shrs_sold THEN
v_je2acct_othr.gl_amt
ELSE
v_je2acct_othr.gl_amt
END );
---- Commented on 11/01/2006 For Fixing 30585
/* v_je2acct_othr.shares :=( CASE
WHEN v_je2acct_othr.exer_type = 0 THEN v_je2acct_othr.opts_exer
WHEN v_je2acct_othr.exer_type = 2 AND v_je2acct_othr.opts_exer != v_je2acct_othr.shrs_sold
THEN v_je2acct_othr.opts_exer - v_je2acct_othr.shrs_sold
WHEN v_je2acct_othr.exer_type = 2 AND v_je2acct_othr.opts_exer = v_je2acct_othr.shrs_sold
THEN 0
ELSE v_je2acct_othr.shares
END );*/
---- Commented on 11/01/2006 For Fixing 30585
v_je2acct_othr.shares :=
CASE
WHEN v_je2acct_othr.exer_type = 0 THEN
v_je2acct_othr. Shares
--- Replaced opts_exer with the Shares amount from the previous journal for fixing 30585
WHEN v_je2acct_othr.exer_type = 2 AND v_je2acct_othr.opts_exer != v_je2acct_othr.shrs_sold AND v_je2acct_othr.shares!=0 AND v_je2acct_othr.plan_type 0 -- Added plantype condition for CQ:PCTUP00493542
THEN
v_je2acct_othr.Shares - v_je2acct_othr.shrs_sold
--- Replaced opts_exer with the Shares amount from the previous journal for fixing 30585
WHEN v_je2acct_othr.exer_type = 2 AND v_je2acct_othr.opts_exer = v_je2acct_othr.shrs_sold THEN
0
ELSE
v_je2acct_othr.shares
END );
dbms_output.put_line('success6');
IF LENGTH(TRIM(v_je2acct_othr.acct_num_othr))=8 OR TRIM(v_je2acct_othr.acct_num_othr) IS NULL THEN
v_mlac_mesg :=NULL;
ELSE
v_mlac_mesg :='Check the ml a/c length';
dbms_output.put_line('success7');
END IF;
INSERT
INTO TB_XOP_JEMQ
jemq_num,
prev_jemq,
ml_retail_account,
wcma_shares,
shares,
wcma_taxes,
tax_amt,
wcma_reimburse,
reimburse_amt,
name_first,
name_last,
exer_type,
ml_sec_num,
wcma_bulking,
bulking_amt,
ivr_plan_num,
exer_dt,
grant_dt,
user_id,
source,
mlu_rowid,
settle_dt,
exer_num,
plan_type,
grant_num,
vc_trailer_desc,
rsu_type
VALUES
Pk_Xop_Get_Jemqnum.fn_xop_get_jemqnum,
v_je2acct_othr.jemq_num,
v_je2acct_othr.acct_num_othr,
-- 2nd ml_retail_account,
v_je2acct_othr.ml_retail_account,
-- move shares from old acct to 2nd acct above
v_je2acct_othr.shares,
--this is SHARES
--wcma_taxes
0,
--tax_amt,
v_je2acct_othr.ml_retail_account,
-- move gl_amt from old acct to 2nd acct above
v_je2acct_othr.gl_amt * -1,
v_je2acct_othr.name_first,
v_je2acct_othr.name_last,
v_je2acct_othr. exer_type,
v_je2acct_othr.ml_sec_num,
--wcma_bulking,
0,
--bulking_amt,
v_je2acct_othr.ivr_plan_num,
v_je2acct_othr.exer_dt,
v_je2acct_othr. grant_dt,
v_je2acct_othr.user_id,
'T',
--source
v_je2acct_othr.mlu_rowid,
v_je2acct_othr. settle_dt,
v_je2acct_othr.exer_num,
v_je2acct_othr. plan_type,
v_je2acct_othr.grant_num,
v_je2acct_othr.vc_trailer_desc,
v_je2acct_othr. rsu_type
dbms_output.put_line('success8');
END IF;
EXCEPTION
WHEN OTHERS THEN
Pr_Xop_Log_Errors ( 'Code :' || NVL(v_mlac_mesg,SQLERRM) || ' at ' || USER || 'at sub exec block in pop_je2acct_othr' );
END;
dbms_output.put_line('success9'); -- end of begin within loop
END LOOP;
--COMMIT;
EXCEPTION
WHEN OTHERS THEN
Pr_Xop_Log_Errors ( 'Code :' || NVL(v_mlac_mesg,SQLERRM) || ' at ' || USER || 'at pk_xop_jemq.pop_je2acct_othr' );
dbms_output.put_line('success10');
END;
{code}  
Maybe you are looking for
-
When I open the "Merge to HDR Pro" dialog box, it is too big for the screen and I cannot resize it. Pressing the green + button just resizes the too big screen above my dock, but it is still too big for the options that lie at the bottom of the dialo
-
Archiving EC_PCA_ITM object: Profit center
We are doing the archiving for the object EC_PCA_ITM (Profit ctr. accounting: actual and plan line items) The system display an error message about a configuration in customizing: "The are no versions in Customizing that match your selections" In Cus
-
How to convert the query to function
Please help to convert the below given query to a function : SELECT ITEM_CODE, ITEM_NAME, ROUND(OPSTK/CNV/ML,2) OPSTK, ROUND(OPVAL,3)OPVAL, ROUND(INQTY/CNV/ML,2) INQTY, ROUND(INVAL,3) INVAL, ROUND(OUTQTY/CNV/ML,2) OUTQTY,ROUND(OUTVAL,3)OUTVAL
-
No mails in INBOX - Communication Express 6
Hi all, I configured Messaging server 7.0 follow this link http://wikis.sun.com/display/CommSuite6/Sun+Java+Communications+Suite+6+on+a+Single+Host#SunJavaCommunicationsSuite6onaSingleHost-ConfiguringDelegatedAdministratorandCommunicationsCLI - Serve
-
[SOLVED] Can't display extended unicode
Hello, My arch install cannot render extended unicode characters. Example: http://i.imgur.com/3VNpkkI.png I first though it was a font issue, but this website tells me that I have many, many fonts that should display that character: http://www.filefo