Qty field addtion based on item no. for ekbe table

Hi experts,
                  below is my code..
LOOP AT IT_EKKO.
  READ TABLE IT_LFA1 WITH KEY LIFNR = IT_EKKO-LIFNR.
   MOVE: IT_LFA1-NAME1 TO IT_DISPLAY-NAME1.
   MOVE: IT_EKKO-LIFNR TO IT_DISPLAY-LIFNR,
         IT_EKKO-AEDAT TO IT_DISPLAY-AEDAT,
         IT_EKKO-ERNAM TO IT_DISPLAY-ERNAM,
         IT_EKKO-EKGRP TO IT_DISPLAY-EKGRP.
READ TABLE IT_EKPO WITH KEY EBELN = IT_EKKO-EBELN.
   MOVE: IT_EKPO-EBELN TO IT_DISPLAY-EBELN,
         IT_EKPO-MATNR TO IT_DISPLAY-MATNR,
         IT_EKPO-MENGE TO IT_DISPLAY-MENGE.
         LOOP AT IT_EKBE where ebeln eq it_ekko-ebeln.
            loop at it_ekbe." WHERE ebelp eq it_ekbe-ebelp.
         IT_DISPLAY-QTY = IT_DISPLAY-QTY + IT_EKBE-MENGE.
         AT END OF EBELP.
        APPEND IT_DISPLAY.
         CONTINUE.
         ENDAT.
         ENDLOOP.
         endloop.
         APPEND IT_DISPLAY.
         CLEAR IT_EKKO.
         ENDLOOP.
my requirement is to display lifnr,ernam,ekgrp.....etc....
but the condition is in ekbe table i hav to take purachse document no. from ekko table..based on this ebeln if suppose
the item no. ebelp in ekbe has value say 10,10, den 20,20..for a single ebeln...then for same item no(10). the qty field should be added
and for (20) item no. the qty field should be added.
plz help...
hw can i acheive this requirement.
thanks n regards,
Ashmita Singh.

Hi Ashmita,
Do the following changes in your program.
Define it_lfa1 table as Hashed table with unique key on lifnr.
Sort table it_ekpo before the loop start on ebeln and used binary search to read data from table.
Define it_ekbe as sorted table with non-unique key on ebeln and EBELP use single loop.
Write the following statement before main loop start. (ie it_ekko)
delete ADJACENT DUPLICATES FROM it_ekbe COMPARING eblen EBELP.
LOOP AT it_ekko.
* Define it_lfa1 table as Hashed table with unique key
  READ TABLE it_lfa1 WITH KEY lifnr = it_ekko-lifnr.
  MOVE: it_lfa1-name1 TO it_display-name1.
  MOVE: it_ekko-lifnr TO it_display-lifnr,
  it_ekko-aedat TO it_display-aedat,
  it_ekko-ernam TO it_display-ernam,
  it_ekko-ekgrp TO it_display-ekgrp.
* Sort table it_ekpo on ebeln and used binary search
  READ TABLE it_ekpo WITH KEY ebeln = it_ekko-ebeln.
  MOVE: it_ekpo-ebeln TO it_display-ebeln,
  it_ekpo-matnr TO it_display-matnr,
  it_ekpo-menge TO it_display-menge.
* Define it_ekbe as sorted table with non unique key on ebeln and use single loop.
  LOOP AT it_ekbe WHERE ebeln EQ it_ekko-ebeln.
      it_display-qty = it_display-qty + it_ekbe-menge.
  ENDLOOP.
  APPEND it_display.
  CLEAR it_ekko.
ENDLOOP.
Kind Rgds
Ravi Lanjewar

Similar Messages

  • Fields in sales order item level for pricing

    01.02.2011
    Hi friends,
    I have a requirement wherein i need at least 3 additional fields at the item level in the Sales Order for pricing determination i.e i want this field to be used in the condition table. Since these fields should have list of values also, I find the fields Material group1, material group2 and material group3 ideal ones. I wont be using this field in the material master but inputting some data in these fields through development at the sales order level. How can i get these fields in the catalog?  Please suggest.
    Regards,
    Uday

    The following communication structures are relevant in pricing:
    KOMK (pricing communication header)
    KOMP (pricing communication item)
    KOMG (allowed fields for condition structures)
    For technical reasons, communication structure KOMG is used. It combines the fields from KOMK and KOMP that are relevant for pricing in the standard system and are offered in the field catalog of condition tables. If you want to use a new field in the field catalog, you must add the field to KOMP or KOMK in the following INCLUDES:
    header data in INCLUDE KOMKAZ in KOMK
    item data in INCLUDE KOMPAZ in KOMP
    When you use INCLUDES, the field is automatically added to KOMG and the field catalog.
    The routines for assigning values to the new fields in order processing are found in member MV45AFZZ. Use the following user exits:
    USEREXIT_PRICING_PREPARE_TKOMK (header fields)
    USEREXIT_PRICING_PREPARE_TKOMP (item fields)
    The routines for assigning values to the new fields in billing are found in member RV60AFZZ. Use the following user exits:
    USEREXIT_PRICING_PREPARE_TKOMK (header fields)
    USEREXIT_PRICING_PREPARE_TKOMP (item fields)
    Examples for using new fields in pricing
    Example 1
    In the first example, parts of a document field are to be used in pricing. You want to use the first three digits of the product hierarchy (PRODH) for pricing, for example. Proceed as follows:
    1. Check the data elements in the standard system.
    2. Since there is no such data element you have to create the new data element ZZPRODH1. Also create a domain with the length "3" and the data type "CHAR" for the new data element.
    Remember that new data fields must start with the letters "ZZ" or "YY", since SAP reserved these letters to protect them from being overwritten during a release upgrade.
    3. Check whether the product hierarchy (PRODH) is found at header or at item level.
    In table VBAP, document field PRODH is defined as an item field.
    4. Integrate the field name ZZPRODH in the communication structure KOMP using the INCLUDE KOMPAZ and allocate the data element PRODH to it.
    5. Activate the structure.
    6. Check in which table the field PRODH exists.
    The field is in table VBAP (sales document: item data).
    7. Assign a value to the new field in the FORM routines for sales order processing and billing using the appropriate user exits:
    In sales order processing the user exit is found in member MV45AFZZ. The complete statement is:
    FORM USEREXIT_PRICING_PREPARE_TKOMP.
    MOVE VBAP-PRODH(3) TO TKOMP-ZZPRODH.
    ENDFORM.
    The routines for assigning a value to the new fields in billing are found in member RV60AFZZ. The statement is as follows:
    FORM USEREXIT_PRICING_PREPARE_TKOMK
    MOVE XVBRP-PRODH(3) TO TKOMP-ZZPRODH.
    ENDFORM.

  • Requirement to populate the Profit center field of Vendor line item thru...

    Hi,
    My requirement is to populate the Profit center field of Vendor line item.
    For this, I want to write a substitution where based on the Business Area of Vendor line item, the system should populate the Profit center while saving.
    Is it possible thru Validation & Substitutions...
    Plz guide me in writing this
    Points will be suitable rewarded for replies.
    regards
    AVM

    Tcode: GGB1
    An example shows how to make a G/L account available for line item substitution.
    GGB1
    Click FA – Doc Header
    Click Create Substitution icon
    Enter the Text
    Click Create Step icon
    Click the field u want – Say - BKPF- BKTXT
    Choose the option – Say :Constant value
    Give description of ur step
    Click Prerequisite
    Double Click Structure BKPF
    Double Click BKPF-AWKEY
    Click Constant button
    Enter the Text u want to make it appler in the Reference key
    Click Substitution and enter the constant value u want
    Go to Tcode: GGB4
    Click Substituted Fields
    Give ur table and field (Here - BKPF- BKTXT)
    Do it in a similar way..if u cannot proceed, let me know the exact field values..and i can take screenshots and send u across
    Thanks,
    Sridevi

  • The report in FI which contains Quantity field with every line item

    Hi Gurus,
    What are the reports in Finance which contains Qty field with every Line Item reports & reports that contains user name & System Id in it along with other informations e.g. G/L, Ar, AP
    Thanks & Regds,
    Santosh Rothe

    Hi
    Using the line item display report you can get the required details by changing layout in the output:
    FBL1N: Vendor line item
    FBL3N: G/L line item
    FBL5N: Customer line item
    VVR

  • Steps to create f4 help for a table

    steps to create f4 help for a table

    These are the steps you have to take first:
    1. Please elaborate, your question does not all too clear.
    2. Search on SCN.
    3. Search on help.sap.com (for creating F4 search help).
    I guess you get the picture. Creating an F4 help is quite easy (you can find that on SCN for sure), but what do you mean by
    for a table
    1.Do you want to create a field which has an F4 help for searching tables or
    2. is this field part of a table and you need to have a search help for that field of that table in order to select some sort of value
    3. Is this a custom table.
    4. Is this a custom field for which F4 help should be added.
    5. Won't a domain value do.
    6. etc.

  • GL Account Line Items-Qty Field not showing credit sign for credit postings

    The instance is ECC 6.0
    We are using new GL.
    The issue is happening for WA doc types. For the credit postings, the Qty is not coming with the credit  sign(-) in the line items details report (FAGLL03) for the GL account. When the same document is displayed via FB03, the QTY is having a credit sign(-).
    Can someone tell if this is something that is controlled at the layout level for the QTY field and if I can change it so credit entries show with sign?.

    Hi,
    The quantity will not come with negative sign in FAGLL03.
    Whether the quantity is positive or negative is determined using the posting key or debit/ credit indicatior.
    You can not change this standad setting. You can change your layout to sort based on debit/ credit indicator.
    Regards,
    Gaurav

  • Disabling the Qty field for Input for Sub items in Sales Order and Delivery

    Hi..
    I have a requirement, where by we need to disable the qty field vbap-kwmeng for input for sub items of the BOM.
    I am planning to use the user exit USEREXIT_FIELD_MODIFICATION...in the include MV45AFZZ for sales orders.
    But i need to disable the input only after the BOM Explosion and item category determination in the sales order.
    Can i Use the same exit ?? what additional conditions i need to take into account.
    also we need to disable the delivery quantity field also for the sub items of this sales bom.
    I see that this User exit is not available in delivery procesing.  How to acheive the required functionality in the delivery processing...
    your advice is much appreciated in this matter.
    Regards
    Srini

    hi,
    Route is determined
    1.Country of Departure & Departure Zone taken from Shipping Point
    2.Country of Destination & receiving Zone from Ship to party
    3.Shipping condition from CMR
    4.Transportation Group from MMR
    5.Weight Group which is optional.
    Check the above.
    Route is determined in delivery.
    ASHA

  • FRM-40209 Field must be of form . - for a non-based text item

    Hello,
    When I try querying using a VARCHAR2 non-based text item in a table-based block, setting dynamically in PRE-QUERY trigger the DEFAULT_WHERE property for its block, in case I use characters > or < (for bringing values greater or smaller than the one in the field, as in a standard Oracle query) error message is raised: 'FRM-40209 Field must be of form .' The issue has nothing to do with the error itself (usually related to erronated format mask of the field), and it is known as an Oracle Forms bug: I found it as bug 851153 - which appears on execute query if you enter in a non-base-table-item and the block has a pre-query trigger. The bug has been solved later in Oracle Developer Forms Builder 6i, or so I've been reading, problem is the application I'm working to requires Forms Builder 6.0.5.
    I am trying to find an workaround for this situation and these are the info I managed to discover myself on the topic:
    - if I fill the field with '>value instead of >value, query works fine, bringing only values greater than the specified value. (So far, this and inactivating the FRM-40209 error in ON-ERROR trigger seems like the best I can do)
    - if I only use > (without '), I cannot use an auxiliar variable/global in which to store the actual value written in the field, I also cannot print the value in a message, because trying to use the exact string, it is shown as null (even though when the error is raised, value is still shown on the screen in the text item).
    Maybe someone could help with an idea for an workaround in order to copy the content of the text field before it actually becomes null…
    Thank you in advance.

    I have already tried that... but for some reasons the field already appears as null, when I try to use it.

  • User exit at item level for billing block field default for VA41 or VA42

    Hi All,
    I want user exit at item level for contract (VA41or VA42) for the field Billing Block in the Billing document tab
    which has to populate with some default value.
    Which user exit i need to check.
    Regards
    Jai

    Hi,
    Use subroutine USEREXIT_FIELD_MODIFICATION in Include MV45AFZZ.
    Make sure this is for only tcodes VA41 and VA42 because this wil trigger for sales order also.
    Regards,
    Ashok.

  • Multiple Line item proposal in SAP based on return reason for Material Serv

    Hi,
    I have a requirement in which the customer returns the faulty material for repair, the company does the inspection of the material and sends the faulty material to the External vendors for Repairing.
    External Vendor after repairing sends the material back to the company, which is then returned back to the customer.
    I want to understand , is it possible in SAP to have a sales document created with different line items (One for the material returned from the customer, one for the Material to be send to the external vendor for repairing , and one for the material to be returned back to customer after repairing)
    Is it possible to have this proposal automatically based on return reason in SAP ?
    Kindly Advise.
    Regards,
    Harsh

    Hi Harsh,
    I think you are trying to amalgamate 3 processes which is quite ambitious by all means :). However in my past experience we have been able to track these articles but playing around using the standards. Customer return was a process through which an article was brought in a seperate storage location for repair and was sent out for repair using sub contracting process, after repair it was again sent out to the customer with the sales process. Of course there were quite a few physical processes that were needed to support this. We started to think but than refrained ourselves from using batches and serial numbers for this.
    Regards
    Kaizad

  • Change field value in a table, based on another field value in the same row (for each added row)

    Please Help, I want to change field value in a table, based on another field value in the same row (for each added row)
    I am using this code :
    <HTML>
    <HEAD>
    <SCRIPT>
    function addRow(tableID) {
    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;
    var row = table.insertRow(rowCount);
    var colCount = table.rows[0].cells.length;
    for(var i=0; i<colCount; i++ ) {
    var newcell = row.insertCell(i);
    newcell.innerHTML = table.rows[1].cells[i].innerHTML;
    switch(newcell.childNodes[0].type) {
    case "text":
    newcell.childNodes[0].value = "";
    break;
    case "checkbox":
    newcell.childNodes[0].checked = false;
    break;
    case "select-one":
    newcell.childNodes[0].selectedIndex = 0;
    break;}}}
    function deleteRow(tableID) {
    try {var table = document.getElementById(tableID);
    var rowCount = table.rows.length;
    for(var i=0; i<rowCount; i++) {
    var row = table.rows[i];
    var chkbox = row.cells[0].childNodes[0];
    if(null != chkbox && true == chkbox.checked) {
    if(rowCount <= 2) {
    alert("Cannot delete all the rows.");
    break;}
    table.deleteRow(i);
    rowCount--;
    i--;}}}catch(e) {alert(e);}}
    </SCRIPT>
    </HEAD>
    <BODY>
    <INPUT type="button" value="Add Row" onClick="addRow('dataTable')" />
    <INPUT type="button" value="Delete Row" onClick="deleteRow('dataTable')" />
    <TABLE id="dataTable" width="350px" border="1">
    <TR>
    <TD width="32"></TD>
    <TD width="119" align="center"><strong>Activity</strong></TD>
    <TD width="177" align="center"><strong>Cost</strong></TD>
    </TR>
    <TR>
    <TD><INPUT type="checkbox" name="chk"/></TD>
    <TD>
    <select name="s1" id="s1">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>
    </TD>
    <TD><input type="text" name="txt1" id="txt1"></TD>
    </TR>
    </TABLE>
    </BODY>
    </HTML>

    Hi,
    Let me make sure u r working with table control.
    First u have to create a event(VALIDATE) to do the validation.
    Inside the event,
    1. First get the current index where user has pointed the curson
    2. Once u get the index read the internal table with index value.
    3. Now u can compare the col1 and col2 values and populate the error message.
    1. DATA : lo_elt TYPE REF TO if_wd_context_element,
                   l_index type i.
    lo_elt = wdevent->get_context_element( name = 'CONTEXT_ELEMENT' ).
         CALL METHOD LO_ELT->GET_INDEX( RECEIVING  MY_INDEX = l_index.
    above code should be written inside the event.
    Thanks,

  • Service line item History for Contracts with item cat - D and Acc Assg P

    Hello Gurus,
    We have a situation where we create contract with item category D (Service) and account assignment category P (Projects). And for the line items of the PO we have difference services (without a service master) and each service line item has the price and quantity and other required fields. Now it is required to change the price or the quantity or both for this service line time and again (business requirement).
    The task is to to track the price changes and the quantity changes that have happened to the serive line item from the original and we require the report to diplay the original price and the present price on the service line.
    The question is: Is there a standard report in SAP to handle this? Or which are the tables where a service line items history is stored so that it can lead to a development.
    Regards - SS

    Hi Pankaj,
    We are using a Percentage based case (Prorata case)
    For Eg : For Eg for 65% (65KAI )material Price 1000 Rs
    If the Purity percentage varies payment will be done as per the same. For eg : for 70% (70KAI ) Price 1200 Rs. (approx)
    In this case unit of measurement is KAI (kilo active ingredient) .
    Actually we are dealing with dealer price where duties are entered Inclusive of the total price and entered at the time of making GR. and the payment is made as per the same;
    we have one po for 5000 MT. where we received material at first time Qty being 1993 MT.The duties manuallyentered are as follows :BED :24,167.00
    AED : 7,076.00
    ECS : 483.00
    SECES : 242.00
    These duties are flowing correctly in MIRO
    and the MIRO has been Posted and payment is also made.
    But while the balance quantity 2982 kg we received next time and those duties are as flowing as follws:
    BED : 36160
    AED : 10587
    ECS : 723
    SECS : 362
    But here at the MIRO the following duties are flowing instead of above
    BED : 36,526.08
    AED : 10,694.18
    ECS : 730.32
    SECS : 365.66
    What might be the error at this stage.
    waiting for solution at the earliest .
    Regards,
    Girish.C.M.
    09377077122

  • Acrobat Pro Calculating form fields lose functionality after enabling document for Reader

    I have a problem that continues to come up increasingly. I thought I had found a work-around on some forums, but it is still causing trouble. Im hoping you can answer the question.
    I am creating a form that requires simple calculations (sum and add). I can get these calculations to work just fine. However, as soon as I enable the document for Adobe Reader, the form seems to get amnesia. It loses the ability to calculate. When I go into the fields again to look at them, they still show that they are supposed to calculate, but arent working. I have to clear the calculations and completely reset them all in order to get them to function again, but as soon as I save this enabled doc, it loses its functionality all over again.
    Frustrating.
    I did find a work-around on a forum, but have only gotten it to work once. It had something to do with closing and saving the document, then reopening it before entering the calculations.
    Is there a clear-cut solution to this problem? The forums were rife with people experiencing the same frustrations.
    Thanks ahead of time for your assistance.

    Nathan,
    It's fairly straighforward to set up a custom validation script for this, but it might not be immediately obvious how to do it. I'll use your form as an example. In it, you have a number of rows with a Quantity field where the user enters how many items are needed, a Price field that has as its default value the price for the item, and a Total field which is a calculated field and should be the product of the Quantity and Price fields. The only variable in the calculation is the value of the Quantity field, so this will be easy.
    The Validate event of a field gets triggered when the field value is committed. This happens when the user enters a value and presses Enter, Tab, clicks outside of the field, etc. What the script should do is take the value the user entered, multiply it by the value that's in the Price field, and set the value of the Total field. The script could look something like:
    (function () {
        // Get the value of this field, as a number
        var qty = +event.value;
        // Get the value of the Price field, as a number
        var price = +getField("PRICE.0").value;
        // Calculate the total
        var total = qty * price;
        // Set the value of the Total field if not zero,
        // otherwise, blank it out
        getField("TTL.0").value = total ? total : "";
    What you really should do, however, is set up a document-level JavaScript (Advanced > Document Processing > Document JavaScripts...) that contains a function you can call from the QTY field of each row. The function will determine which row should be affected based on the field name that triggers it. Something like:
    function calcTotal() {
        // Get the row number from the field name
        // of the field that called this function
        var row = event.target.name.split(".").pop();
        // Get the value of the field that called this function, as a number
        var qty = +event.value;
        // Get the value of the Price field, as a number
        var price = +getField("PRICE." + row).value;
        // Calculate the total
        var total = qty * price;
        // Set the value of the Total field if not zero,
        // otherwise, blank it out
        getField("TTL." + row).value = total ? total : "";
    Than all you have to place as the custom Validate script of each of your QTY fields is the following:
    calcTotal();
    Also, make sure that you remove any calculations that you've set up on the Calculate tab of each TOTAL field. Now that the total fields do not rely on automatic calculations, it does not matter that the document is missing its field calculation order array, though this bug REALLY needs to be fixed. You should consider reporting it to Adobe. I will report it too.
    Note that this code assumes the QTY and PRICE fields are numeric fields, meaning they will either be blank or contain a valid number. You've ensured this by setting up each with a Format category of Number.
    George

  • Authorization check based on item category on sales order (VA01 or VA02)

    I want to be able to restrict authorization of users based on item category. We only want certain users to be able to select a certain item category.  I know I'm going to have to check one of the userexits in MV45AFZZ. The issue I'm having is the authorization object .
    The item category is field VBAP-PSTYV.
    What we are going is having a item category for emergency orders. But this requires more manual steps to associate with the original order. We already have the emergency item categories defined and working (no credit check etc) so there's no reason not to have them added to the original order. The issue is its use has to be restricted so when the user selects an alternative item category it checks whether they have the authority.   
    Any help would be appreciated

    Hi,
    You can achieve this through authorization objects.
    Transaction
    SU20 - Authorization Fields
    SU21 - Authorization Objects
    Create the field PSTYV in the Authorization Fields.
    Then Create the authorization object and include this field along with the standard field ACTVT (which determines what activities can be performed by a certain user i.e. Create, Change or Display) & user-name
    In your your-exit, you can either use the ABAP command AUTHORITY-CHECK or the function-module AUTHORITY_CHECK and pass the values for these fields. The system can perform the test based on this values & based on the sy-subrc value you can restrict the users that are not having the authorization to select item-categories for emergency orders.
    Following link should help you:
    [SAP Authorization Concept|http://help.sap.com/saphelp_wp/helpdata/en/52/671285439b11d1896f0000e8322d00/content.htm]
    Hope that helps you.
    Regards,
    Saurabh

  • To change a field to edit ,which is in customer fields tab of an item in crmd_order transaction.

    Hi All,
    My requirement is to change a "field to edit" which is in "customer fields tab" of an item in "crmd_order" transaction.
    Please find the screen shot.
    Please help me with this issue

    Use easy enhancement workbench
    The Easy Enhancement Workbench is a development tool with which SAP applications (called Business Objects in the following document) can be extended in a simple manner.
    Customer enhancements to a Business Object are defined via wizards. The Workbench then does all development work for the user; databank tables, screens and application logic are created automatically. Finally the customer enhancement is included in the SAP standard.
    This also allows users without ABAP knowledge the simple possibility of extending the SAP standard.
    An extension created using the Easy Enhancement Workbench does not differ technically from one created manually. In both cases transportable ABAP objects are created and the same Customer Exits, Business Transaction Events or BAdIs are implemented
    You need to use EEWB feature to achieve the same.
    Tutorial
    http://www.scribd.com/doc/6755615/Eewb-Steps
    http://help.sap.com/saphelp_crm50/helpdata/en/9f/a19c921f0911d6b1d500508b6b8b11/frameset.htm
    In addtion check this note
    Note 484597 - Customer enhancement of CRM applications
    a guide is attached to it for telling u steps
    Hope query is solved
    Regards
    Prakhar

Maybe you are looking for

  • Rendering problem - takes ages - why ?? Problem described + hardware listed

    Hi First I will try to describe my problem which makes me nuts by now :-(....then -  I will also submit the information about my hardware as good as I can, to hopefully get some wise hints about what to do. I'm not that skilled when it comes to video

  • Writing test case for One-way messaging returns fault

    Hi All,      We are using latest 11.1.1.7 version of SOA Suite. There is a SOA composite which gets data feed from external party using the one-way message exchange pattern to store the feed into the database. i.e. from (Web Service component ----> M

  • Change number of rings

    I've been told that the only way to change the number of telephone rings before an incoming call goes to voice mail can ONLY be done by Verizon. Is this true or can I do it myself? And if so how?

  • Portal with MDM

    Hi i am going to work on the project which have the components like EP and MDM. it is going to start soon. so far i have not worked in this combination. can u tell me what are the requirments will come between EP and MDM ? how are the interactions wi

  • Result of dimension.getImplicitLocations()

    Hi , I want to understand the working of getImplicitLocations() on a Dimesnion. 1. Will it give me any result if I apply this method on a not fully implicit dimension(Dimesnion.isImplicit() is False)? if it gives implicit locations which level Implic