How to map this condition in XI
Hi all,
Please can any one tell how to proceed this condition in XI map :
Please any one provide some solution, bcoz its hamppering my development.
EITHER(
EXTRACT(
Group_3:Group_1,
EAN11 E2MARMM002 Field:E2MARMM002 Segment:Group_3:Group_1 != "" &
MEMBER(
MEINH E2MARMM002 Field:E2MARMM002 Segment:Group_3:Group_1,
MEINH_SAP Fileds:Target_Market
FAIL(
" No Valid MEINH (UOM) found in given IDoc for Material Number = " +
TRIMLEFT(MATNR E2MARAM005 Field:E2MARAM005 Segment:Group_1, "0") + "," +
" Either correct MEINH (UOM) in the IDoc or configure MEINH for the material number in file " +
GETFILENAME( SAPMW_Lookup )
Group_5,
Group_1,
SAPMW_Lookup,
Variant_Language_Lookup
Message was edited by:
vijaya laxmi
Message was edited by:
vijaya laxmi
HI Ranga Rajan,
Now, here i am pasting new condition which was used in mercator.
But the same condtion i have to use in XI also, so please explain indetail interms of XI.
=IF( MEINH E2MARMM002 Field:E2MARMM002 Segment:Group_3_MATMAS05_V1_UNI = "D97" &
EAN11 E2MARMM002 Field:E2MARMM002 Segment:Group_3_MATMAS05_V1_UNI != "",
IF(TRIMLEFT(TRIMRIGHT(#GLB#MATSW #GLB#XGT_E1MARA1000 Field:#GLB#XGT_E1MARA1000 Segment:Group_1_MATMAS05_V1_UNI)) != "",
F_04_CreateUOMSW(
LOOKUP(
UOMSW:UOMSW_File:SAPMW_Lookup,
TRIMLEFT(TRIMRIGHT(#GLB#UOMSW #GLB#XGT_E1MARA1000 Field:#GLB#XGT_E1MARA1000 Segment:Group_1_MATMAS05_V1_UNI)) =
TRIMLEFT(TRIMRIGHT(UOMSW_SAP Fileds:UOMSW:UOMSW_File:SAPMW_Lookup))
Similar Messages
-
How to map this scenario..?
Hi,
I have one requirement to map in SAP,
Scenario:
1)PO will be raised for a material A.
2)Material A contains 5 different component materials( ie by assembling 5 components we will get Material A)
3)When I do GR for Material A against that PO, stock has to be updated only for 5 components not for material A.
Can you pls tel me how to map this in SAP.
Your inputs are rewardable.
RegdsHi ,
pls follow this process;
As Charu said, you can create material A as non-stock material and create BOM and assign the five
components.
1.Create Subcontracting PO, item category as L.
2.Use MB1B to transfer post the components to subcontractor(vendor) and assign the PO.
(Make sure that you have enough stock of your components in your unrestricted stock.)
If not increase the initial stock balance for the components using 561 movement type, using MB1C Tcode.
3.Create subcontracting challan against this mat doc.Tcode J1if01.
4.Now do Migo. In the excise tab you can select as refer subcontracting challan, a pop-up will appear.
enter the challan no .Mat doc will be posted.
5.Reconcile the challan using J1ifQ tcode, against the Migo doc.
6.If its fully reconciled, i.e if you have received full quantity,the challan would be fully reconciled
and you can complete the challan using J1if13.
You can print the challan by clicking print immediately check box.
7.Then MIRo.
Award points if useful.
Regards
Kumar -
How to map this scenerio..... please help
Hi Experts,
Please tell me how to map this scenerio.
We want to produce 1000pc of plastic bottles. After production in this 1000 pc, assume that 100 pc of plastic bottles are having scraches on there surfaces but these bottles are not considered as scrap and we want to call this as B Grade materials. Similarly another 100 pc are also found same type of problem and we want to call this as C Grade materials. And remaining 800 pc , We want to call this as A Grade materials.
But all 1000 pc we want to sell, only the thing is with different price for A,B and C grade materials
Material is same i.e., Plastic Bottle (FERT) but depending on grades My client want to differentiate it.
Please Experts Clear me and help me how to map this in pp.
Thanks and Regards,
sap ppHi
You Maintain Split Valuation No need to maintain Diffrent Material code , U maintain Diffrent Valuation Type With Diffrence price , and Maintain Diffrent Batches with batch number as Grade, assign the valuation type to batch , at the time of confirmation based on the grade you selct the batch number and confirm , it will be saved with diffrent grade with diffrent valuation.
What is Split Valuation?
Split Valuation means managing a material as several partial stocks. Each partial stock is valuated separately.
Why do you require Split Valuation?
Split Valuation is required for certain materials in order to valuate them separately.
Following can be the reasons for opting for split valuation:-
1) Different origin of the material
2) Different grades of the material
3) Different statutes of the material
4) Differentiation between in -house production and external procurement
5) Differentiation between deliveries
IMG -> Materials Managementà Valuation and Account Assignment-> Split Valuation-> Activate Split Valuation
IMG à Materials Managementà Valuation and Account Assignmentà Split
Valuationà Activate Split Valuation à Configure Split Valuation
IMG à Materials Managementà Valuation and Account Assignmentà Split
Valuationà Activate Split Valuation à Configure Split Valuation
2.2 Create Valuation type
IMG à Materials Managementà Valuation and Account Assignmentà Split Valuationà Activate Split Valuation à Configure Split Valuation
2.Allocate Valuation type to Valuation categories
IMG ->Materials Management-> Valuation and Account Assignment-> Split Valuation-> Activate Split Valuation -> Configure Split Valuation
2.4 Allocate Valuation categories to Valuation areas
IMG à Materials Managementà Valuation and Account Assignmentà Split Valuationà Activate Split Valuation à Configure Split Valuation
2.5 Default Valuation type per plant
IMG à Materials Managementà Valuation and Account Assignmentà Split Valuationà Activate Split Valuation à Configure Split Valuation
Create Manul batch number tcode- MSC1N Eg : A - Grade , B - Grade like that ,assign the Valution type to batch IN MSC1N Or MSC2N,
I hope this will workout.
Madhu -
How to get this condition right ?
Hi Friends,
Please tell me , How to get this condition right.
Current Date = Posting date (RBKP.BUDAT) + 7 (i.e. notifications are sent 7 days after the Posting date).
I need to get the blocked invoices which are overdue for 7 days, and send these blocked invoices. How to do the declaration and get it right ...
thanks in advance ...
Edited by: Matt on Jan 28, 2009 2:38 PM - subject amended by moderatorHi, SK SIDDIQUI
Have a look at following code will solve out your problem,
TABLES: RBKP.
data: it_rbkp like STANDARD TABLE OF rbkp WITH HEADER LINE,
wa_it_rbkp like rbkp,
p7date like sy-datum,
p14date like sy-datum,
p21date like sy-datum.
p7date = sy-datum - 7.
p14date = sy-datum - 14.
p21date = sy-datum - 21.
SELECT * from rbkp
into CORRESPONDING FIELDS OF TABLE it_rbkp
where budat <= p7date. " for 14 just Replace p7date with p14date and for 24 just Replace p7date with p24date
Please Reply if any Problem,
Kind Regards,
Faisal -
How to put this condition in Query
Dear experts,
I have a scenario where in the calculation should be dynamic between key figures in query
For example i have a
Target Cost and Actualcost1, Actualcost2, Actualcost3
i need to findout the variance between the Target and Actual
but the catch is that i need to findout the variance with the latest actual cost
1. ) Target cost = 100
Actual cost1=10, Acutal cost2=0, actual cost3=0
then the formula should be Actual cost1-target cost
2. )But if
Target cost =100
Actual cost1=10, Actual cost2=5, Actual cost3=0
then the formula should be Actual cost2- Target cost
3. Target cost =100
Actual cost1=10, Actual cost2 = 5, Actual cost3= 15
then the formula should be Actual Cost3-Target cost
How to achieve this
Thanks and regards
NeelHi Neel,
Do you have indicator saying that a particular actual cost is the latest? If you have any indicator thsi would make the job easy. Else you need to create new formulas to derive the logic.
Else you can proceed with the belwo logic.
1.target cost
2. Actual Costs 1 - Hide
3. Actual Costs 2 - Hide
4. Actual Costs 3 - Hide
5. New formula whcih evaluates the latest.
Write the condition
If Actual costs3 = 0 and actual cost2 = 0 then actual cost1.
else if actual cost2= 0 then actual cost1
else if actual cost1 NE 0 and actual cost2 NE 0 then Actual cost3.
Then hide the above new formula.
And in a new formula you can find the diff between the Target cost and the latest cost derived in teh above new formula.
If the conditions is too big in the above new formula, you can split across two three new formulas and derive the logic.
Just make some changes to the above logic if it is not 100%.
I believe this logic will work. -
No man power to issue how to map this scanario
Dear Gurus,
Pls any one provide a solution for this scanario,
Oil is received (say 50000 ton) and stored at one location. There is no man power to issue it from that location.Worker comes there with pail (bucket) and collects oil and go. Over a period, the remaining oil is measured (using dip), if oil goes below the minimum level once again PO raised.How we can map this
into SAP.Its not a pipeline material.
Regards,
AnandBalanHi,
Go through the following steps
1] Assume that today 5000 L of oil is received in the tank.
2] The person collect say 50 L from the tank. Now quantity 50 L is not known to the person who is resposible for stocks because there is no manpower available.
3] But as you stated before, physical stocks can be take with the help of dip.
The person will take dip and will found level 4950. So he will simply issue 50 L ( 5000-50=4950 L).
The same will be continued evereday.
But the problem is how to monitor the stocks and when to procure oil.
For this reason, maintain MRP Type VB with reorder point for example say 1500 L
Continuing the above procedure with stock will reach to the 1500 L, automatically PR will be generated.
With this PR, Procurement cycle will be continued.
Hope this will help you. -
How to map fields Condition group1- condition group5 [KDKG1- KDKG5] to CRM
We have a requirement to enhance the BP master data in CRM in such a way that Condition group1- condition group5 of ECC customer master data can be mapped to the BP master data in CRM. This is required because the fields are used in pricing and pricing records needs to be sent to CRM. These fields are not in CRM and SAP suggests an enhancement.
Can anyone suggest how to do the middleware enhancements sothat the field values can be captured in CRM?
Maximum will be rewarded.Sorry, didn't read it properly. In this case you have to do enhancement. Do the following:
ERP side:
- in sm30 for table TBE24 define new entry for user exit
- in table TPS34 define user exit for process CRM0_200 and some Z function and product from step 1
- define Z function as copy of standard fm SAMPLE_PROCESS_CRM0_200
- define coding for Z function. you will have to append your data to T_BAPISTRUCT which contains data that are sent to CRM
CRM side:
- in sm30 for table TBE24 define new entry for user exit
- in table TPS34 define user exit for process SMOUTIL3 and some Z function and product from step 1
- define Z function as copy of standard fm SAMPLE_PROCESS_SMOUTIL3
- define coding for Z function. you will have to read data from TI_BAPIMTCS which contains data that are sent from ERP -
How can achieve this (Condition on CHARS at cube or report level)
HI,
My report requirement is to display only values where employee Home Dept Not Equal To Worked Department.
Home Department (CHAR-20) and
Worked Dept (CHAR-20)
For that I created a Info Object in Cube (ZINDICATOR).While data load i want to populate this field with X (Flag) if Home Dept = Worked Dept and Y (Flag) if Home Dept <> Worked Dept.
So that I can use ZINDICATOR in Query Filter to restrict accordingly..
When I tried to write an if condition in update/Transfer rules it is giving me error...
<b>Formula element is not allowed here</b>
How can I achieve my desired results......?OK sorry,
Are you doing this in an individual update rule or in a start routine?
I suggest start routine. Steps:
1. Add your derived characteristic into the communication structure of the transfer rules (do not have any update in the transfer rules for it)
2. In the update rules have a direct mapping for the characteristic.
3. Create a start routine in the update rule. code should be something like
FIELD-SYMBOLS: <f_dp> TYPE data_package_structure.
LOOP AT DATA_PACKAGE ASSIGNING <f_dp> .
IF <f_dp>-home_dpt eq <f_dp>-work_dpt.
<f_dp>-/bic/zindicator = 'X'.
ELSE.
<f_dp>-/bic/zindicator = 'Y'.
ENDIF.
ENDLOOP.
You will need to replace the work_dpt and home_dpt etc. bits with the names of your characteristics.
Regards
Peter -
How to map this Business process
Wanted to dispatch Goods thru Stock transfer from plant A to plant C which are in two different states. Further Plant C doesn't have unloding point hence the goods are unloaded at Plant B an intemediate location.
For this presently one STO is created from plant A to Plant B and another STO from plant A to C. Goods are transferred thru delivery and movement types 641 to location B & C.
Hence on system delivery is appering twice in stock transfer reports against plants B & C.
How this procedure can be mapped in single transaction.
anyaany reply .
-
Hi, I have a query regarding joins
I have two tables named Master_table and Child_table. suppose assume that tables look like this
Master_table
ID name .. ..
1
2
3
4
5
6
7
8
9
10
100
Child_table
ID Date .. ..
101
102
103
104
105
1
2
3
4
109
200
I have some conditions and wrote a single query using views and joins and got some rows from Master table
and also from child table. suppose assume I queried 50 results from Master table and 40 from child table
now
condition 1:
I have to get the same ID's common data from both the tables so I wrote query as shown below
to get that data I used this join condition master.ID = child.ID this works fine and returning the result ID
as 1,2,3,4 that's fine
conditon 2:
Now I have to write the query that it shouldn't return the above ID's i.e 1,2,3,4 and return the remaining 46 IDs present in the
master table query resultset (Actually our master table query returned 50 ID's)
now my join condition is as shown below
master.ID = child.ID(+) but it is returning 50 IDs I want only those 46 except those above 4 IDs.
can any one help me out
Thanks
basuThanks for your response
I will be more clear regarding this query. Assume my Master table and child table have 100 rows each. No I used views and some conditions
and get 50 results from my Master table view and 40 results from my Child table view .Now in those 50 and 40 I have common date assume 4 rows. Now I want to eliminate those 4 (not 40 rows in child table) rows from the 50(result set of master table)rows and get the remaining rows. -
Hi experts,
I have one problem,
as
I have field 1, if value of field 1 is 001, receiver 2 will be mapped with field 2.
if value of field 1 is 002, receiver 2 will be mapped with field 4.
How i can do it ?
Please help,
Regards,
Study SAPconstant>equals>if without else---> field2
(001) | receiver2-->
Field1----
constant>equals>if without else---> field4
(002) | receiver2-->
Field2---- -
How to Validate this Condition
Table Structure
1-Master_table
ct_no number(4)
rent_no number(4)
rcv_dt date2-Rcv_table
rcv_no varchar2(5)
rcv_dt date,
ct_no number(4),
rent_no number(4),Sample Data of master_table
CT_NO RENT_NO RCV_DT
2717 1 11-MAY-07
2717 2 25-MAY-07
2717 3 07-JUL-07
2717 4
2717 5
2717 6
2717 7
2717 8
2717 9
2717 10
2717 11
2717 12
2717 13
2717 14
2717 15
2717 16
2717 17
2717 18
2717 19
2717 20
2717 21I build a tabular form based on RCV_Table contain 10 Rows,in which user select ct_no and Rent_no from master_table from LOV (seperate LOV for Ct_no and Rent_no).
LOV of CT_no
select distinct ct_no from master_table
LOV of Rent_no
select rent_no from master_table where ct_no=:ct_noI want to validate..if user select 2717 in Ct_no and 4 in rent_no at first record,if user enter another record for that ct_no 2717 ,rent_no field should check the enter value should be 5.
In rent_no LOV i successfully handle that the record already been selected are not showing in LOV,but if User enter the rent_no manually without using LOV then my validation fails.
Tell me how to restrict the user to not to enter invalid value of that fieldOne IDEA!!!!!!!
you create a summary item rent_max with
summary function : max
summary block : detail bl
summary item :rent_no col of detail
So every time you have the max. rent no entered...When you enter in the next record,
if rent_no != rent_max+1, then throw error...
But One doubt ....
If ur LOV works fine ...Why dont you use Validate from list for rent no set as YES ???
Edited by: Dora on Dec 10, 2009 5:42 PM -
PR00 : How to implement this condition type ?
Hi,
Please can you give me the steps to implement a Condition Type (condition that we use in Tcode VK11)
Example of condition : PR00 (price)
Please help.
Regards.Transaction Code: VK11 is to maintain Condition Records. Condition record can be maintained for all condition type, except Header and manual condition types.
Write-up on Pricing procedure configuration:
Determination of Pricing Procedure:
In SD, Pricing Procedure is determined (T.Code: OVKK) based on Sales Area (Sales Organization + Distribution Centre + Division) + Customer Pricing Procedure + Document Pricing Procedure. Sales Area is determined in Sales Order Header Level. Customer Pricing Procedure is determined from Customer Master. Document Pricing Procedure is determined from Sales Document Type / Billing Type (if configured). Once the pricing procedure is determined, Condition records are fetched. If appropriate condition records are found, the price is determined. If Mandatory pricing condition is missing, system will through an error message.
Configuration of Pricing Procedure:
In SD, the steps to configure Pricing procedure are as under:
Step 1:
Condition table (T.Code: V/04): If existing condition table meets the requirement, we need not create a new condition table. Considering the requirement for new condition table, the configuration will be done in spro as follows: IMG --> Sales & Distribution --> Basic Function --> Pricing Control --> Condition Table (select the required fields combination, which will store condition record).
Step 2:
Access Sequence (T.Code: V/07): If existing access sequence meets the requirement, we need not create a new access sequence. Considering the requirement for new sequence, the configuration will be done in spro as follows: IMG --> Sales & Distribution --> Basic Function --> Pricing Control --> Access Sequence (Access sequence is made up of Accesses (Tables) & the order of priority in which it is to be accessed. Here we assign the condition table to access sequence.
Step 3:
Condition Type (T.Code: V/06): If existing condition type meets the requirement, we need not create a new condition type. Considering the requirement for new condition type, the configuration will be done in spro as follows: IMG --> Sales & Distribution --> Basic Function --> Pricing Control --> Condition Type. It is always recommended to copy an existing similar condition type & make the neccessary changes. Here we assign Access sequence to Condition type.
Step 4:
a. Pricing Procedure (T.Code: V/08): It is recommended to copy a similar pricing procedure & make the neccesary changes in new pricing procedure. Pricing Procedure is a set of condition type & arranged in the sequence in which it has to perform the calculation. Considering the requirement for new Pricing Procedure, the configuration will be done in spro as follows: IMG --> Sales & Distribution --> Basic Function --> Pricing Control --> Pricing Procedure --> Maintain Pricing Procedure.
b. Pricing Procedure (T.Code: VOK0): After maintaining the pricing procedure the next step will be determination of pricing procedure. Configuration for determining pricing procedure in SPRO is as follows: IMG --> Sales & Distribution --> Basic Function --> Pricing Control --> Pricing Procedure --> Determine Pricing Procedure.
5. Condition record (T.Code: VK11 / VK12): Condition record is a master data, which is required to be maintained by Core team / person responsible from the client. During new implementation, the condition records can be uploaded using tools like SCAT, LSMW, etc. Condition Record is maintained in T.Code: VK11 / VK12, which are captured in Sales Order & Billing.
Also check document pricing procedure in Sales Document Type (T.Code: VOV8 - Sales order Type, VOFA: Billing Type (If Required)), customer pricing procedure in Customer Master Data (T.Code: XD02), ... are in place.
Regards,
Rajesh Banka -
Kindly guide me on how to model following scenarios into SAP;
Please Guide
Characteristics
Length - L
Width - W
Height - H
Glue Flap- K1
Overlap - K2
No of UPS CD- K3
No of UPS MD- K4
Side lay in MD 1- K 5
Side lay in MD 2- k16
Front Lay in CD- K 6
Backside Margin in CD- K 7
Lamination Margin K 8
Board Cost K9
Ink GSM K 10
Ink Rate K 11
Lamination 10 PET K 12
Price of PET K 13
Lamination Glue GSM K 14
Price of Glue K 15
Wastage allowance K 17
Board GSM K 18
Variable formula
V1 =(W + K2)/2
V2 =(WHK2)
V3 =(L+W)*2 + K1
V4 =(WHK2)*K3
V5 =((lW)*2K1)* k4
V6 = if no of K3 > 3 then 10 else 5
V7 =V4 + V6 + K6 + K7
V8 =V5 + k5 + K16 +k8
V9 =(2825.40.9)/V7
V10 =(4025.40.88)/V8
V11 =K3 * K4
V12 =(V4 * V5) / V11
V13 =V12 * K10 * K11
V14
V15 =(V7 * V8) / V11
V16 =1000/ V11* V7 * V8 / 1000000 * k18 / 1000
V 17 = V16 * K9
V 18 =( V13 + V17)*(100+k17)/100
V 19 =( V13 + V17 + V18)
V 20 = k12 * 1.4
V 21 = V15 * V20
V 22 = K13 * V21
V 23 = k14 * V15
V 24 =k15 * V23
V 25 = (V19 +V22 + V24)* K17/100
V 26 = V19 + V22 + V24 + V25Dear Dipak,
Thanks a lot
#1. I have a material "x"
#2. Characteristics of "x", is described by L,W,H, k1 to k18
#3. The attributes of these characteristics are dynamic
#4. The parameters & costs are defined by formulae "V" series - V1 to V26
#5. "Acceptance" of "x" is based on suitable end values from formulae - V1 to V26
#6. Currently we guys are doing the modelling based excel sheets.
#7. Same process, we want in SAP
#8. So that, once attributes are frozen, the model or specs or bom is released for procurement / production
I HOPE, I HAVE EXPLAINED CLEARLY.
Welcome with healthy criticism
Warm Regards
Ramana -
Pricing ..Very Critical....How to Map
Hey SAP Gurus...
Could you all tell me how to configure the below requirement ...plz provide me the solution precisely..its critical need to resolve asap...plz help meeeeeeeeeeee....
Thanks in advance....Heres the requirement....
The Client has gone for a single window sale with a ABC company (Vendor), where the vendor has around 1000 distributors under it. Client has around 100 distributors, whom Client would be put under the Vendor. All the sales activity from the Client side will be ONLY with the Vendor and the distributors have to buy from the Vendor. But the marketing part is with the Client.
Itu2019s a 45 days direct sale with the Vendor at 60% of MRP.
Client sets the rate of the Products to be sold at different zones (South, North, West, and East) or for a particular distributor.
Ex: North zone: 80% on MRP
South Zone: 75% on MRP
The Vendor gets 5.5% on the Net sales (minus tax)
Ex: MRP = 100/-,
Vendor Price = 60/-
Distributor Price (DP) = 80/-,
Tax = 10/-,
DP minus Tax = 80-10 = 70/-
Net Sales = 70/-
Already paid = 60/-
To be paid = 10/-
Vendors service charges = 5.5% of 70 = 3.85/- (say at 12.5%tax)
Balance payment = 80 u2013 60 u2013 10 u2013 3.85 = 6.15/-
The balance payment is reconciled every month end. So that credit/ debit notes are raised and adjusted against next payments.
*My question:*
*How to map this in SAP (upload in standard tables) so that reports are generated as per needs?*
Edited by: shrii on May 21, 2009 9:28 PM
Edited by: shrii on May 21, 2009 10:32 PM
Edited by: shrii on May 22, 2009 9:29 AMMessage is duplicated with
Pricing....how to map ??
Please close it. Thanks in advance.
Maybe you are looking for
-
No users are shown for Service Desk functionality in SOLMAN 4.0
Hello! I would like to set up the business partners for Service Desk in SAP Solution Manager. If I choose the solution and execute "Edit --> Create Business partner" for the SAP R/3 4.7 then I get the warning no users are shown under the system. Fo
-
New analysis XML customizedcriteria 11.1.1.5.0
Hi, I create an analysis and I change subject area in XML with a presentation variable. So I have one report for different subject areas (Subject area's have same dimensions but different members, so my report works fine). Depending prompt it shows e
-
Best practice for Java stand alone upgrade into maint org area?
I have a Java standalone running EP 6.0 on SAP netweaver 04 at SP 20. I want to upgrade to SAP Netweaver 2004s. I think the equivalent of SPS 20 of NW 04 in NW 2004s is SPS 11 (ie all the SCAs are named *11...). NW 2004s SPS 11 download requires use
-
Any way to use iPhone as a (Video) media server?
Okay, we have an Apple TV in the living room and love it, however was wondering if there is any way to stream video to our iPhones? For watching TV other places in the house, etc. I'm not looking for HTTP streaming, unless setting that up and then co
-
HELP HUGE OS X PROBLEM!!!!!
Ok HUGE problem, I just installed OS X Tiger on my g3 lombard, it ran perfectly, that later on in the day I restarted and when I did the gray screen with the dark grey apple in the middle, and the botton cricle-lines that keeps spinnign appears and i