Can not update data in table view

When i open a table from a connection in the connection navigator i can not alter the data in it... I can only add new rows. Is there a setting so i can alter the data?
My user has update rights because when i write my own update statement and execute it, it works fine.

I found the issue... You can do it in 10g but you have to define a PK on the table, otherwhise he does not know what row to update. When i added a PK i could edit the data in Jdev in data view.

Similar Messages

  • 2.1 RC1 - Can not get data in Object viewer

    Hi,
    I open the table and change the tab to "Data" then error message is shown in the Data Editor Log panel.
    The message is "ORA-00923: FROM keyword not found where expected".
    This table has more than 100 columns. I guess that the SQL statement is too long so whole statement is not send to Oracle.
    EA2 work successfully.

    Hi,
    RaghvendraSaboo
    SELECT command is working in worksheet both 'select * from table' and 'select col1, co2,... from table'.
    Only object viewer can not show values.
    Here is the result of DESC command below.
    Thanks.
    desc ching1;
    Name Null Type
    CH-1 NOT NULL CHAR(6)
    CH-2 NVARCHAR2(16)
    CH-3 CHAR(1)
    CH-4Z CHAR(1)
    CH-4B CHAR(1)
    CH-4K CHAR(1)
    CH-5 CHAR(1)
    CH-6Z CHAR(1)
    CH-6B CHAR(1)
    CH-6K CHAR(1)
    CH-7 NUMBER(1)
    CH-8 NUMBER(1)
    CH-9 CHAR(1)
    CH-11 NUMBER(1)
    CH-12 NUMBER(7)
    CH-13 NUMBER(7)
    CH-14 CHAR(1)
    CH-15 CHAR(1)
    CH-16 NUMBER(2)
    CH-17 CHAR(1)
    CH-18 CHAR(1)
    CH-19 NUMBER(7)
    CH-20 NUMBER(7)
    CH-21 CHAR(1)
    CH-22 CHAR(1)
    CH-23 NUMBER(2)
    CH-24 CHAR(1)
    CH-25 CHAR(1)
    CH-26 CHAR(1)
    CH-27 CHAR(1)
    CH-28 CHAR(1)
    CH-30 CHAR(1)
    CH-31 CHAR(1)
    CH-32 CHAR(1)
    CH-33 CHAR(1)
    CH-34 NUMBER(3)
    CH-ER CHAR(1)
    CH-48 NUMBER(6)
    CH-49 CHAR(1)
    CH-50 NUMBER(6)
    CH-51 NUMBER(6)
    CH-60 NUMBER(1)
    CH-61 NUMBER(1)
    CH-62 NUMBER(1)
    CH-63 NUMBER(1)
    CH-64 NUMBER(1)
    CH-65 NUMBER(1)
    CH-66 NUMBER(1)
    CH-67 NUMBER(1)
    CH-68 NUMBER(1)
    CH-69 NUMBER(1)
    CH-73 NUMBER(1)
    CH-74 NUMBER(1)
    CH-75 NUMBER(1)
    CH-76 NUMBER(1)
    CH-79 NUMBER(3,2)
    CH-80 NUMBER(4)
    CH-81 NUMBER(4)
    CH-82 NUMBER(5)
    CH-83 NUMBER(5)
    CH-84 NUMBER(1)
    CH-85 NUMBER(5)
    CH-86 NUMBER(5)
    CH-87 NUMBER(5)
    CH-88 NUMBER(2)
    CH-91 NUMBER(1)
    CH-92 CHAR(1)
    CH-93 CHAR(1)
    CH-94 NUMBER(1)
    CH-95 NUMBER(1)
    CH-96 CHAR(1)
    CH-97 CHAR(1)
    CH-98 NUMBER(1)
    CH-99 NUMBER(6)
    CH-100 NUMBER(3,2)
    CH-101 NUMBER(7)
    CH-102 NUMBER(6)
    CH-103 NUMBER(6)
    CH-104 NUMBER(6)
    CH-105 NUMBER(6)
    CH-106 NUMBER(5)
    CH-107 NUMBER(6)
    CH-108 NUMBER(6)
    CH-109 NUMBER(6)
    CH-110 NUMBER(7)
    CH-111 NUMBER(7)
    CH-112 NUMBER(6)
    CH-113 NUMBER(6)
    CH-114 NUMBER(5)
    CH-120 NUMBER(6)
    CH-121 NUMBER(6)
    CH-130 NUMBER(5)
    CH-131 NUMBER(6)
    CH-132 NUMBER(6)
    CH-133 NUMBER(6)
    CH-134 NUMBER(6)
    CH-135 NUMBER(6)
    CH-136 NUMBER(6)
    CH-137 NUMBER(6)
    CH-138 NUMBER(6)
    CH-139 NUMBER(6)
    CH-140 NUMBER(6)
    CH-141 NUMBER(6)
    CH-142 NUMBER(6)
    CH-143 NUMBER(6)
    CH-144 NUMBER(5)
    CH-145 NUMBER(5)
    CH-146 NUMBER(5)
    CH-147 NUMBER(6)
    CH-148 NUMBER(5)
    CH-149 NUMBER(5)
    CH-150 NUMBER(6)
    CH-151 NUMBER(6)
    CH-152 NUMBER(6)
    CH-153 NUMBER(6)
    CH-154 NUMBER(6)
    CH-155 NUMBER(6)
    CH-156 NUMBER(6)
    CH-157 NUMBER(6)
    CH-160 NUMBER(7)
    CH-170 NUMBER(6)
    CH-171 NUMBER(5)
    CH-180 NUMBER(6)
    CH-190 NUMBER(7)
    CH-191 NUMBER(7)
    CH-200 NUMBER(3)
    CH-201 NUMBER(6)
    CH-202 NUMBER(6)
    CH-203 NUMBER(6)
    CH-204 NUMBER(6)
    CH-205 NUMBER(6)
    CH-206 NUMBER(6)
    CH-207 NUMBER(6)
    CH-208 NUMBER(6)
    CH-209 NUMBER(6)
    CH-210 NUMBER(6)
    CH-211 NUMBER(6)
    CH-212 NUMBER(6)
    CH-213 NUMBER(6)
    CH-214 NUMBER(6)
    CH-215 NUMBER(6)
    CH-216 NUMBER(6)
    CH-220 NUMBER(6)
    CH-221 NUMBER(6)
    CH-222 NUMBER(6)
    CH-223 NUMBER(6)
    CH-224 NUMBER(6)
    CH-225 NUMBER(6)
    CH-230 NUMBER(2)
    CH-231 NUMBER(5)
    CH-240 NUMBER(6)
    CH-241 NUMBER(6)
    CH-242 NUMBER(6)
    CH-243 NUMBER(6)
    CH-244 NUMBER(6)
    CH-280 NUMBER(6)
    CH-290 NUMBER(7)
    CH-300 NUMBER(6)
    CH-301 NUMBER(6)
    CH-302 NUMBER(6)
    CH-303 NUMBER(6)
    CH-304 NUMBER(1)
    CH-305 NUMBER(5)
    CH-306 NUMBER(1)
    CH-307 NUMBER(6)
    CH-308 NUMBER(6)
    CH-309 NUMBER(3)
    CH-310 NUMBER(6)
    CH-311 NUMBER(6)
    CH-312 NUMBER(6)
    CH-313 NUMBER(6)
    CH-314 NUMBER(6)
    CH-315 NUMBER(1)
    CH-316 NUMBER(5)
    CH-317 NUMBER(5)
    CH-318 NUMBER(5)
    CH-319 NUMBER(1)
    CH-320 NUMBER(5)
    CH-321 NUMBER(5)
    CH-322 NUMBER(5)
    CH-323 NUMBER(5)
    CH-324 NUMBER(6)
    CH-325 NUMBER(6)
    CH-326 NUMBER(6)
    CH-327 NUMBER(6)
    CH-328 NUMBER(6)
    CH-329 NUMBER(5)
    CH-330 NUMBER(5)
    CH-331 NUMBER(5)
    CH-332 NUMBER(6)
    CH-333 NUMBER(6)
    CH-334 NUMBER(5)
    CH-335 NUMBER(6)
    CH-336 NUMBER(6)
    CH-337 NUMBER(5)
    CH-338 NUMBER(5)
    CH-339 NUMBER(3)
    CH-340 NUMBER(6)
    CH-341 NUMBER(6)
    CH-342 NUMBER(6)
    CH-343 NUMBER(6)
    CH-344 NUMBER(6)
    CH-345 NUMBER(6)
    CH-346 NUMBER(6)
    CH-347 NUMBER(6)
    CH-348 NUMBER(6)
    CH-349 NUMBER(6)
    CH-350 NUMBER(6)
    CH-351 NUMBER(6)
    CH-352 NUMBER(6)
    CH-353 NUMBER(6)
    CH-354 NUMBER(6)
    CH-355 NUMBER(5)
    CH-356 NUMBER(5)
    CH-357 NUMBER(6)
    CH-358 NUMBER(6)
    CH-359 NUMBER(6)
    CH-360 NUMBER(6)
    CH-361 NUMBER(6)
    CH-362 NUMBER(6)
    CH-363 NUMBER(5)
    CH-364 NUMBER(5)
    CH-365 NUMBER(5)
    CH-366 NUMBER(5)
    CH-367 NUMBER(5)
    CH-368 NUMBER(5)
    CH-369 NUMBER(7)
    CH-370 NUMBER(7)
    CH-371 NUMBER(7)
    CH-372 NUMBER(7)
    CH-373 NUMBER(6)
    CH-374 NUMBER(6)
    CH-375 NUMBER(6)
    CH-380 NUMBER(6)
    CH-381 NUMBER(6)
    CH-382 NUMBER(6)
    CH-383 NUMBER(6)
    CH-384 NUMBER(6)
    CH-385 NUMBER(6)
    CH-386 NUMBER(6)
    CH-387 NUMBER(6)
    CH-388 NUMBER(6)
    CH-389 NUMBER(6)
    CH-390 NUMBER(5)
    CH-391 NUMBER(5)
    CH-392 NUMBER(5)
    CH-393 NUMBER(5)
    CH-394 NUMBER(6)
    CH-400 NUMBER(5)
    CH-401 NUMBER(4)
    CH-402 NUMBER(5)
    CH-403 NUMBER(5)
    CH-404 NUMBER(5)
    CH-405 NUMBER(5)
    CH-406 NUMBER(6)
    CH-407 NUMBER(6)
    CH-408 NUMBER(6)
    CH-409 NUMBER(6)
    CH-410 NUMBER(6)
    CH-411 NUMBER(6)
    CH-412 NUMBER(6)
    CH-413 NUMBER(6)
    CH-414 NUMBER(5)
    CH-415 NUMBER(6)
    CH-416 NUMBER(6)
    CH-417 NUMBER(6)
    CH-418 NUMBER(6)
    CH-419 NUMBER(6)
    CH-420 NUMBER(5)
    CH-421 NUMBER(5)
    CH-422 NUMBER(5)
    CH-423 NUMBER(5)
    CH-424 NUMBER(5)
    CH-425 NUMBER(5)
    CH-426 NUMBER(5)
    CH-427 NUMBER(6)
    CH-480 NUMBER(6)
    CH-490 NUMBER(6)
    CH-491 NUMBER(6)
    CH-500 NUMBER(6)
    CH-501 NUMBER(6)
    CH-502 NUMBER(6)
    CH-503 NUMBER(6)
    CH-504 NUMBER(6)
    CH-505 NUMBER(6)
    CH-506 NUMBER(6)
    CH-507 NUMBER(6)
    CH-508 NUMBER(6)
    CH-509 NUMBER(7)
    CH-510 NUMBER(7)
    CH-511 NUMBER(7)
    CH-512 NUMBER(7)
    CH-513 NUMBER(1)
    CH-514 NUMBER(1)
    CH-515 NUMBER(7)
    CH-516 NUMBER(7)
    CH-517 NUMBER(7)
    CH-518 NUMBER(7)
    CH-519 NUMBER(3)
    CH-520 NUMBER(7)
    CH-530 NUMBER(7)
    CH-531 NUMBER(7)
    CH-580 NUMBER(7)
    CH-590 NUMBER(6)
    CH-591 NUMBER(6)
    CH-600 NUMBER(4,1)
    CH-601 NUMBER(4,1)
    CH-602 NUMBER(4,1)
    CH-603 NUMBER(4,1)
    CH-604 NUMBER(4,1)
    CH-605 NUMBER(6,3)
    CH-606 NUMBER(4,1)
    CH-607 NUMBER(4,1)
    CH-608 NUMBER(2)
    CH-609 NUMBER(2)
    CH-610 NUMBER(2)
    CH-611 NUMBER(2)
    CH-612 NUMBER(2)
    CH-613 NUMBER(2)
    CH-614 NUMBER(2)
    CH-615 NUMBER(2)
    CH-616 NUMBER(2)
    CH-617 NUMBER(2)
    CH-618 NUMBER(2)
    CH-619 NUMBER(2)
    CH-620 NUMBER(2)
    CH-621 NUMBER(2)
    CH-622 NUMBER(2)
    CH-623 NUMBER(2)
    CH-624 NUMBER(2)
    CH-625 NUMBER(2)
    CH-626 NUMBER(2)
    CH-627 NUMBER(2)
    CH-628 NUMBER(3,1)
    CH-629 NUMBER(2)
    CH-630 NUMBER(2)
    CH-631 NUMBER(1)
    CH-632 NUMBER(1)
    CH-633 NUMBER(2)
    CH-634 NUMBER(4,1)
    CH-635 NUMBER(2)
    CH-636 NUMBER(4,1)
    CH-637 NUMBER(1)
    CH-638 NUMBER(2)
    CH-639 NUMBER(2)
    CH-640 NUMBER(4)
    CH-641 NUMBER(2)
    CH-642 NUMBER(2)
    CH-643 NUMBER(2)
    CH-644 NUMBER(2)
    CH-645 NUMBER(1)
    CH-646 NUMBER(2)
    CH-647 NUMBER(4,1)
    CH-648 NUMBER(1)
    CH-649 NUMBER(1)
    CH-650 NUMBER(2)
    CH-651 NUMBER(2)
    CH-660 NUMBER(4,1)
    CH-661 NUMBER(6,3)
    CH-662 NUMBER(4,1)
    CH-663 NUMBER(4,1)
    CH-664 NUMBER(4,1)
    CH-665 NUMBER(3,1)
    CH-666 NUMBER(2)
    CH-669 NUMBER(4,1)
    CH-670 NUMBER(6)
    CH-671 NUMBER(2)
    CH-672 NUMBER(2)
    CH-673 NUMBER(2)
    CH-674 NUMBER(2)
    CH-680 NUMBER(1)
    CH-681 NUMBER(4,1)
    CH-682 NUMBER(1)
    CH-683 NUMBER(4,1)
    CH-684 NUMBER(1)
    CH-685 NUMBER(4,1)
    CH-686 NUMBER(1)
    CH-687 NUMBER(4,1)
    CH-688 NUMBER(1)
    CH-689 NUMBER(4,1)
    CH-690 NUMBER(1)
    CH-691 NUMBER(4,1)
    CH-700 NUMBER(6)
    CH-701 CHAR(3)
    CH-702 CHAR(2)
    CH-703 NUMBER(7)
    CH-704 NUMBER(8)
    CH-705 NUMBER(8)
    CH-710 NUMBER(1)
    CH-711 NUMBER(4)
    CH-712 NUMBER(4)
    CH-720 NUMBER(5,2)
    CH-721 NUMBER(2)
    CH-750 NUMBER(8)
    CH-751 NUMBER(7)
    CH-752 NUMBER(7)
    CH-800 NUMBER(4)
    CH-801 NUMBER(4)
    CH-802 NUMBER(4)
    CH-803 NUMBER(6)
    CH-804 NUMBER(6)
    CH-811 NUMBER(4)
    CH-812 NUMBER(4)
    CH-813 NUMBER(6)
    CH-814 NUMBER(6)

  • Can not delete data from table which is queried in my stored procedure

    Hi,
    Anyone knows how to fix it:
    I have a table. In a stored procedure, I have a simple query running on this table.
    When I want to delete one record from that table, I got error message:
    ORA-04091: table *** is mutating, trigger/function may not see it.
    Thanks first.

    Rick, the only time you should get a mutating table error is when a trigger is involved. FK problems have separate error codes (and would be a different problem than the one that started this thread). Using a DBA id check all the tables subject to DML by your function and by whatever calls your function for triggers. Only the owner or a DBA can see the existence of triggers on a non-owned table. This has caused some of the developers I work with to think tables that had triggers do not have them since they do not work under the owning or a DBA ID.
    By your description of what you are trying to do in the function we do that all the time without problem.
    How large is the function? How/When is it called?
    Mark D Powell

  • Can not insert/update data from table which is created from view

    Hi all
    I'm using Oracle database 11g
    I've created table from view as the following command:
    Create table table_new as select * from View_Old
    I can insert/update data into table_new by command line.
    But I can not Insert/update data of table_new by SI Oject Browser tool or Oracle SQL Developer tool .(read only)
    Anybody tell me, what's happend? cause?
    Thankyou
    thiensu
    Edited by: user8248216 on May 5, 2011 8:54 PM
    Edited by: user8248216 on May 5, 2011 8:55 PM

    I can insert/update data into table_new by command line.
    But I can not Insert/update data of table_new by SI Oject Browser tool or Oracle SQL Developer tool .(read only)so what is wrong with the GUI tools & why posting to DATABASE forum when that works OK?

  • Want to update data in a view based on multiple tables

    Hi
    I am facing a problem i want to update data in tables using a view. As that view is based on multiple tables so i am unable to update data. i came to know we can update table from view only if view is based on single table. so if anyone knows any alternative please let me know.
    Thanx
    Devinder

    Devinder,
    The table can be updated through a view based on multiple tables, if and only if the table is a "key preserved" table. Rather than explaining myself, i avoided the burden of typing by finding the material in Oracle Docs and pasting it for you :-)
    If you want a join view to be updatable, all of the following conditions must be
    true:
    1. The DML statement must affect only one table underlying the join.
    2. For an INSERT statement, the view must not be created WITH CHECK
    OPTION, and all columns into which values are inserted must come from a
    key-preserved table. A key-preserved table in one for which every primary
    key or unique key value in the base table is also unique in the join view.
    3. For an UPDATE statement, all columns updated must be extracted from a
    key-preserved table. If the view was created WITH CHECK OPTION, join
    columns and columns taken from tables that are referenced more than once
    in the view must be shielded from UPDATE.
    4. For a DELETE statement, the join can have one and only one key-preserved
    table. That table can appear more than once in the join, unless the view was
    created WITH CHECK OPTION.
    HTH
    Naveen

  • Can I update datas of Power Query after making relation tables in Power Pivot ?

    Can I update datas of Power Query after making relation tables in Power Pivot ?
    I want to update datas at day by day to viewing today's graph by Power View on Excel.
    Power Query use to transform web site to Power Pivot data model table.
    Power Pivot use to making relasing tables, and making measuers.
    Regards,
    Yoshihiro Kawabata.

    Hi Yoshihiro,
    Can you share an example of the things you are doing in Power Pivot? There are some operations that prevent the query from being refreshed in Power Query; this is not ideal so we are currently working on fixing it.
    Thanks for your feedback.

  • Edit form with an Inner Join - Can not update/delete data?!

    Hi all,
    I have an Edit form which shows me data from 2 tables (through an Inner Join SQL-Statement). I just realized that I can not edit data anymore, the following error msg appears:
    Error in mru internal routine: ORA-20001: no data found in tabular form
         Error     Unable to process update.
    OK     
    Can someone please help me?

    The ringed in red are from the second table, but the first table has some more data. Here is the SQL Statement I have (D1 and D2 are from the second table - Whereas the DOBJ_NR1 and the DOBJ_NR2 are both primary keys and foreign keys in table one, but the user selects the key from table two...):
    SELECT
    D1.DOBJ_NR DOBJ_NR1,
    D1.NAMSP NAMSP1,
    D1.DOBJ_NAME DOBJ_NAME1,
    D2.DOBJ_NR DOBJ_NR2,
    D2.NAMSP NAMSP2,
    D2.DOBJ_NAME DOBJ_NAME2,
    R.RS_NAME,
    R.ROLE1TO2,
    R.CARDMIN1TO2,
    R.CARDMAX1TO2,
    R.ROLE2TO1,
    R.CARDMIN2TO1,
    R.CARDMAX2TO1,
    R.ON_DELETE,
    R.ON_UPDATE,
    R.O_RS_COMMENT,
    R.INS_BY REL_INS_BY
    FROM
    DO_RELATIONSHIP R
    INNER JOIN DATAOBJECT D1 ON R.DOBJ1_NR = D1.DOBJ_NR
    INNER JOIN DATAOBJECT D2 ON R.DOBJ2_NR = D2.DOBJ_NR
    Edited by: user12067949 on Dec 5, 2009 3:18 AM

  • Can not update request in data target

    Hi,
    We have a process chain for master data (10 parallel) loads.  One of the load
    failed with error "can not update request REQU_46xxxxxxxxxxxxxx in data target".
    When I checked the InfoPackage
    (a) update: full load
    (b) it has data selection
    (c) processing :PSA and then to data targets
    (d) Data targets: update in all data targets for which active rules exist.
    But I do not see any list of data targets here.
    Can some one please suggest me how do I correct this load failure.
    Thanks

    Hi Wondewossen, NS and Nagesh,
    Thanks for the information. I am in support, and the developer is
    not here now.
    I have checked Header tab in the monitor, in this there
    is a update symbol and infosource name and an -->
    but after arrow there is nothing.
    when I click on this I get a message
    "No active update rules exist".
    Can you please advice me how to I correct this.
    Thanks

  • How can i update data in okc_k_items and csi_item_instances tables?

    How can i update data in okc_k_items and csi_item_instances tables?
    by EBS .
    Thanks.

    For csi_item_instances table, you can use the following API:
    CSI_ITEM_INSTANCE_PUB.UPDATE_ITEM_INSTANCE
    For okc_k_items, try using the following API:
    OKC_CONTRACT_ITEM_PUB.UPDATE_CONTRACT_ITEM
    Hope this helps!

  • Update data from a view

    Hi,
    trying to update data from a view with:
    - Company (table)
    - Products (table)
    In a form, the user wants to update
    e.g: both products.product_name and Company.company_name.
    Is there a way to update a view records built on 2 tables ?
    Any idea will be really appreciated
    Thks

    An other question on INSTEAD OF Trigger:
    Base Tables:
    1.
    SQL> desc pcs_companies;
    Name Null? Type
    COMPANY_ID NOT NULL NUMBER(12)
    COUNTRY VARCHAR2(350)
    COMPANY_NAME VARCHAR2(320)
    COMPANY_PHONE VARCHAR2 (320)
    COMPANY_FAX VARCHAR2(320)
    COMPANY_URL VARCHAR2(150)
    UPDATED_DATE DATE
    2.
    SQL> desc pcs_individuals;
    Name Null? Type
    INDIVIDUAL_ID NOT NULL NUMBER(12)
    COMPANY_ID NUMBER(12)
    FIRST_NAME VARCHAR2(320)
    LAST_NAME VARCHAR2(320)
    LOB VARCHAR2(300)
    JOB_ROLE VARCHAR2(300)
    TITLE VARCHAR2(300)
    GENDER VARCHAR2(3)
    EMAIL VARCHAR2(720)
    FAX VARCHAR2(720)
    PHONE_NO VARCHAR2(720)
    UPDATED_DATE DATE
    COUNTRY VARCHAR2(150)
    ADDRESS_1 VARCHAR2(720)
    ADDRESS_2 VARCHAR2(720)
    ADDRESS_3 VARCHAR2(720)
    CITY VARCHAR2(720)
    3. pcs_individuals.COMPANY_ID = FK, ref pcs_companies.
    4.
    SQL> CREATE VIEW V_PCS_COMPANY_IND
    AS
    SELECT
       i.INDIVIDUAL_ID,
       c.company_id,
       c.country,
       c.Company_name,
       c.company_phone,
       i.Company_id indiv_company_id,
       i.gender,
       i.first_name,
       i.last_name,
       i.lob,
       i.job_role,
       i.title,
       i.email_address,
       i.fax,
       i.phone_no ,
       i.address_1,
       i.address_2,
       i.address_3,
       i.city
    FROM
      pcs_individuals i,
      pcs_companies c
    WHERE
      i.company_id = c.company_id
    5.
    CREATE OR REPLACE TRIGGER PCS_ADMIN.PCS_COMP_IND_UPDATE_TR
    INSTEAD OF UPDATE ON PCMS_ADMIN.V_PCS_COMPANY_IND
    FOR EACH ROW
    begin
    update PCS_COMPANIES
    set
         Company_name = nvl(:new.company_name,company_name),
         company_phone = nvl(:new.company_phone,company_phone)
    where company_id = :new.company_id;
    update PCS_INDIVIDUALS
    set
         gender = nvl(:new.gender,gender),
    first_name = nvl(:new.first_name,first_name),
         last_name = nvl(:new.last_name,last_name),
         lob = nvl(:new.lob,lob),
         title = nvl(:new.title,title),
         email_address = nvl(:new.email_address,email_address),
    phone_no = nvl(:new.phone_no,phone_no),
         fax = nvl(:new.fax,fax),
         country = nvl(:new.country,country),
         address_1 = nvl(:new.address_1,address_1),
         address_2 = nvl(:new.address_2,address_2),
         address_3 = nvl(:new.address_3,address_3),
         city = nvl(:new.city,city)
    where company_id = :new.company_id;
    end PCMS_COMP_IND_UPDATE_TR;
    6.
    CREATE OR REPLACE TRIGGER PCS_ADMIN.NEW_COMPANY_ID_INSERT
    INSTEAD OF INSERT ON PCS_ADMIN.V_PCS_COMPANY_IND
    DECLARE
    ID number;
    BEGIN
    INSERT INTO pcs_companies (org_id)
    select v_pcs_comp_id_seq.nextval
    into ID
    from dual;
    :new.company_id = ID;
    INSERT INTO pcs_individuals (company_id)
    select v_pcs_comp_id_seq.nextval
    into ID
    from dual;
    :new.company_id = ID;
    end;
    My question
    On point 6:
    Assumption:
    - Company_id is PK of pcs.Company and FK in pcs.individuals
    - It should be feed by sequence (v_pcs_comp_id_seq)
    Now how can i insert the same value for company_id (current.v_pcs_comp_id_seq) in both pcs_companies and pcs_individuals ? I've tested it in the above INSTEAD OF Trigger.It failed.
    Thks for any advice,
    lamine

  • PO no is not updateing in MSEG table for transfer posting wrt PO

    Hi All ,
    PO number not updateing  in MSEG table field EBELN for transfer posting with reference to PO . What should be the reason . This is for subcontracting process .

    Hi Raghavendra Balegar
    If u r doing through scheduling agreement then it will not sit in MSEG. only if u doing through standard PO i.e. NB then only u can view the data of PO in MSEG.
    Regards
    Ram

  • Sender JDBC.....pick data from table view?

    Hi Experts,
    working on JDBC for first time, so have few questions.
    data base guys want to create a table view and we need to pick the data from table view.
    my question is can we import the structure form data view?
    if i am not able to import, so i need to create the structure same as in data base table view and is it case sensitive?
    they dont want to update the data base table view, very time the SQL query will pick all the records form data base.
    the records will be less then 10,000.
    my question is as we are not updating the table view, what we need to write in update query as it is mandatory?
    Regards,
    Chinna

    Hello,
    i hope below option help in update query
    In place of the SQL statement, you can also enter <TEST>. Once the data determined from Query SQL Statement has been successfully sent, the data in the database remains unaltered.
    This is recommended if the data has not only been read, but also changed by a stored procedure entered under Query SQL Statement.

  • Can not extract data into BW from SQL SERVER

    Dear All,
      I meet a problem to extract data from database(MS SQL Server 2000(sp3)) into BW now and can not extract data into BW ODS, even PSA, In the monitor, display yellow light(0 from 0 record), detail message just display message "data request arranged" "confirmed with: confirmation" in requests(message) step; "missing message: request received" in extract (message)  step; "no data" in processing(data packet) step and so on. but in fact, there are two records in my database test table and DB connection is OK. Even I can extract data from another test oracle database into BW ODS successfully.
       Our BW system has two BW applicaton server and use oracle database. the one application server locates on IBM AIX host. the another one locates on one NT server. the application server on NT server is used for data extration from MS SQL SERVER  database into BW oracle database. and MS SQL SERVER and NT platform application server locate on same one host. DBSL was installed on the NT application server already. and DB connector also was created successfully for MS SQL SERVER and datasource also was generated. DBSL type is Kernel640-WIN-IA32bit-unicode. my BW system is ECC5.0/UNICODE/ORACLE. all table/view/field name of MS SQL server is upcase and have not any specific character. for example: ZDEMO etc.
    wait your help.
    Thanks in advance.
    Billy

    Hi  Ravi,
    Could you help me to get knowledge about the followings:
    approximately how many records    extracting and transfering  from SAP R/3 to BIW  in an organisation. for that how much time  will take .
    How to extract data from  two are three source system  to BIW. Kindly help me with step by step explanation .If any screen shots with documents pls fwd to my ID. "[email protected]"
    Your help highly appreciated.
    Thanks.
    Hema

  • Excise Base amount not updated in J_1iexcdtl table -reg

    Dear Gurus,
    We have used SAP Ecc 5.0 Patch level 21. In patch level 20, SAP admit without delivery , can do commercial billing and excise billing in foreground. After batch update SAP not support excise invoice creation in foreground. It support only background. We have 2 senario. 1 is capex sales . ie. without material stock we have raise the comm.billing and excise billing. 2 is supplimentary billing. both the senario now getting effected because of no delivery. Asper SAP advise we have setting for background process excise invoice creation. Excise invoice created. but excise base amount not updated in j_1iexcdtl table. Using J_1I7_USEREXIT_CALC_EXC_BASE user exit we are trying to update the same. For single material it works fine. But more than one material for the first material's base amount is updated in all materials. for your reference i have mentioned the codding . SAP advise it is possible to update excise base amount. But not possible to do. pl.adivse if any correct or guide to solve it.
    FUNCTION J_1I7_USEREXIT_CALC_EXC_BASE.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(EXCITM_BASE) TYPE  KOMV-KAWRT
    *"     VALUE(POSNR) TYPE  VBRP-POSNR
    *"  EXPORTING
    *"     VALUE(EXCITM_BASE) TYPE  KOMV-KAWRT
    *"  TABLES
    *"      KONV STRUCTURE  KONV
    *{   INSERT         RDSK925285                                        1
    TABLES : KONV.
    data :   W_INDEX LIKE SY-TABIX.
    DATA :ITAB LIKE TABLE OF KONV WITH HEADER LINE.
    DATA :ITAB1 LIKE TABLE OF KOmV WITH HEADER LINE.
    ITAB1[] = KONV[].
    DATA : BEGIN OF I_TAB OCCURS 0,
           KAWRT LIKE KONV-KAWRT,
           POSNR LIKE VBRP-POSNR,
           END OF I_TAB.
    LOOP AT ITAB1.
    READ TABLE ITAB1 WITH KEY KSCHL = 'JMOD' KPOSN = ITAB1-KPOSN.
    IF SY-SUBRC EQ 0.
        EXCITM_BASE = ITAB1-KAWRT.
        POSNR = ITAB1-KPOSN.
    ENDIF.
    ENDLOOP.
    *}   INSERT
    ENDFUNCTION.
    Thanks & Regards
    R.Udayakumar

    solved with the same user exit

  • Folio number not updated in the table RG23D

    Hi all,
    Folio number not updated in the table RG23D when I create depot excise invoice using batch program J_1IJCHK. Can any one help me by providing rootcause and solution.
    Thanks in advance.
    Regards
    Balaji

    See can i know in which version u r working,Because if u r in 4.6c there will be some problem.Some patches will be there.
    Try this program i have send and assign excise duty
    REPORT YJ_1IJCHK MESSAGE-ID 8I.
    TABLES :  J_1IEXCHDR,                  "excise header
              J_1IEXCDTL,                  "excise detail
              J_1IRG23D ,                  "RG23D register
              J_1IWRKCUS,                  "Plant level customisation
              J_1IREGSET,                  "register set customisation
              J_1IEXCDEF,                  "Tax default information
              VBFA,                        "sales document flow
              LIKP,                        "delivery header
              LIPS,                        "delivery detail
              T005,                        "country information
              KUAGV,                       "sold-to-party information
              KUWEV,                       "ship-to-party information
              KNA1,                        "customer master
              VBPA,                        "sales document partner
              TVKO,                        "sales organisation to company co
              VBUK,                        "delivery information
              MAKT,                        "material description
              T001.                        "company code
    selection-screen begin of block delivery_details no intervals.
    PARAMETERS: FCODE    TYPE C,
                DELIVERY LIKE LIPS-VBELN,
                EXCGROUP LIKE J_1IEXCHDR-EXGRP,
                SERGROUP LIKE J_1IEXCHDR-SRGRP.
    TYPES : BEGIN OF RG23D.
            INCLUDE STRUCTURE J_1IRG23D.
    TYPES:  MENGR LIKE J_1IEXCDTL-MENGR,           "remaining quantity
            MENGA LIKE J_1IEXCDTL-MENGA,           "quantity actually rec
            ADDBED LIKE J_1IEXCDTL-ADDBED,
            ADDSED LIKE J_1IEXCDTL-ADDSED,
            ADDAED LIKE J_1IEXCDTL-ADDAED,
            END OF RG23D.
    DATA : BEGIN OF J1IJ300,
            BUKRS   LIKE TVKO-BUKRS,
            WERKS   LIKE LIPS-WERKS,
            REGID   LIKE J_1IREGSET-J_1IREGID,
            WAERS   LIKE T001-WAERS,
            SHIPFROM_IND TYPE C,                          " Added 10/12/1998
            RG23D_SERIALNO TYPE C,                        " Added 10/12/1998
         END OF J1IJ300.
    DATA :  TRNTYP(4)   TYPE C,
            CONDT-NAME(3) TYPE C,
            TOTAL_LRG23D   LIKE LIPS-LFIMG,
            ALLOC_LRG23D   LIKE LIPS-LFIMG,
            SHIPFROM_IND   LIKE J_1IEXCHDR-STATUS,
            RG23D_SERIALNO LIKE J_1IEXCHDR-STATUS.
    DATA : BEGIN OF XLIPS OCCURS 10,
    internal table to store the delivery item information
             VBELN LIKE LIPS-VBELN,
             POSNR LIKE LIPS-POSNR,
             MATNR LIKE LIPS-MATNR,
             MAKTX LIKE MAKT-MAKTX,
             WERKS LIKE LIPS-WERKS,
             LGORT LIKE LIPS-LGORT,
             CHARG LIKE LIPS-CHARG,
             LFIMG LIKE LIPS-LFIMG,
             MEINS LIKE LIPS-MEINS,
             BED   LIKE J_1IRG23D-EXBED,
             SED   LIKE J_1IRG23D-EXSED,
             AED   LIKE J_1IRG23D-EXAED,
             CUR   LIKE J_1IRG23D-EXCUR,
             SELFLAG TYPE C ,              "T=excise invoice selected
             INDEX LIKE SY-TABIX,          "index in the table
             FLG TYPE C.                   "item selection
    DATA : END OF XLIPS.
    DATA : CRG23D TYPE RG23D OCCURS 30 WITH HEADER LINE.
    contains all rg23d entries for the document
    DATA : LRG23D TYPE RG23D OCCURS 30 WITH HEADER LINE.
    contains item rg23d entries
    DATA : BEGIN OF Z_1IRG23D OCCURS 30.
    stores the data to be updated
            INCLUDE STRUCTURE J_1IRG23D.
    DATA : END OF Z_1IRG23D.
    DATA : BEGIN OF EXCINV OCCURS 30.
    factory inovoics selected for item
            INCLUDE STRUCTURE J_1IEXCDTL.
    DATA : END OF EXCINV.
    DATA : BEGIN OF ASSIGNED_EXCINV OCCURS 30.
            INCLUDE STRUCTURE J_1IEXCDTL.
    DATA : END OF ASSIGNED_EXCINV.
    DATA : A_INDEX LIKE SYST-TABIX.
    DATA : BEGIN OF LOCK_TABLE OCCURS 10,
    table containing plant-material combination and status of the lock
              WERKS  LIKE J_1IEXCDTL-WERKS,
              MATNR  LIKE J_1IEXCDTL-MATNR,
              STATUS TYPE C,                   "LOCKED/UNLOCKED
           END OF LOCK_TABLE.
    DATA : BEGIN OF LOCKTAB OCCURS 0,
               TRNTYP LIKE J_1IEXCDTL-TRNTYP,
               DOCNO  LIKE J_1IEXCDTL-DOCNO,
               DOCYR LIKE  J_1IEXCDTL-DOCYR,
               ZEILE LIKE  J_1IEXCDTL-ZEILE,
            END OF LOCKTAB.
    DATA :
          CRG23D-CTR  TYPE I,              "Line count of crg23d table
          SHIPFROM    LIKE J_1IRG23D-SHIPFROM,
          FOLIO       LIKE J_1IRG23D-FOLIO,
          SERIALNO    LIKE J_1IRG23D-SERIALNO,
          DEPEXNUM    LIKE J_1IRG23D-DEPEXNUM,
          DEPEXYEAR   LIKE J_1IRG23D-DEPEXYEAR.
    CONSTANTS :
       BED       LIKE CONDT-NAME VALUE 'BED',
       AED       LIKE CONDT-NAME VALUE 'AED',
       SED       LIKE CONDT-NAME VALUE 'SED',
       CES       LIKE CONDT-NAME VALUE 'CES',
       LOCKED    TYPE C          VALUE '1',
       UNLOCKED  TYPE C          VALUE '2'.
    AT SELECTION-SCREEN.
       PERFORM CHECK_VBELN_INPUT.
    IF     FCODE = 'S'.
           PERFORM DELIVERY_START_USER_EXIT.
           PERFORM READ_DELIVERY_HEADER.
           PERFORM GET_COMP_CODE.
           PERFORM READ_CUSTOMISATION.
           PERFORM GET_ITEM_INFO.
           PERFORM LOCKING.
           PERFORM RG23D_SELECTION.
           PERFORM SAVE_DOCUMENT.
           MESSAGE I000 WITH 'Selection Complete for Delivery ' DELIVERY.
    ELSEIF FCODE = 'V'.
           PERFORM GET_COMP_CODE.
           PERFORM READ_CUSTOMISATION.
           PERFORM GET_ITEM_INFO.
           PERFORM LOCKING.
           PERFORM UPDATE_DOCUMENT.
           MESSAGE I000 WITH 'Verfiy/Post Complete for Delivery ' DELIVERY.
    ENDIF.
    FORM CHECK_VBELN_INPUT.
    Validate Function Code
       IF NOT ( FCODE = 'S' OR FCODE = 'V' ).
         MESSAGE E000 WITH 'Valid Functions are S/V - Select/Verify Post'.
       ENDIF.
      IF DELIVERY IS INITIAL.
         MESSAGE E000 WITH 'Delivery number cannot be initial'.
      ENDIF.
    check if goods issue done for the delivery
        SELECT SINGLE WBSTK INTO VBUK-WBSTK
            FROM  VBUK
            WHERE VBELN = DELIVERY.
        IF  SY-SUBRC = 0.
            IF VBUK-WBSTK <> 'C' AND FCODE = 'V'.
               MESSAGE W339 WITH DELIVERY.
            ENDIF.
        ELSE.
               MESSAGE E000 WITH 'Invalid Delivery'.
        ENDIF.
    if in select mode check if excise invoice already selected for delive
        SELECT SINGLE * FROM J_1IRG23D
            WHERE VBELN = DELIVERY.
        IF     FCODE = 'S'.
               IF SY-SUBRC = 0.
                  MESSAGE E325 WITH DELIVERY.
               ENDIF.
        ELSEIF FCODE = 'V'.
               IF     SY-SUBRC NE 0.
                      MESSAGE E000 WITH 'Selection not over for ' DELIVERY.
               ELSEIF J_1IRG23D-STATUS = 'P'.
                      MESSAGE E000 WITH 'Record Already Posted '.
               ENDIF.
        ENDIF.
      CLEAR J_1IRG23D.
    ENDFORM.                    " CHECK_VBELN_INPUT
    FORM READ_DELIVERY_HEADER.
      SELECT SINGLE * FROM LIKP
        WHERE VBELN = DELIVERY.
    get the sold-to-party
      CLEAR: KUAGV, KUWEV.
      SELECT SINGLE KUNNR NAME1 LAND1
              FROM KNA1 INTO (KUAGV-KUNNR,KUAGV-NAME1,KUAGV-LAND1)
         WHERE KUNNR = LIKP-KUNAG.
    get the ship-to-party
      SELECT SINGLE KUNNR LAND1 NAME1
              FROM KNA1 INTO (KUWEV-KUNNR,KUWEV-LAND1,KUWEV-NAME1)
          WHERE KUNNR = LIKP-KUNNR.
    ENDFORM.                    " READ_DELIVERY_HEADER
    FORM GET_COMP_CODE.
    get the company code of the document from the sales organisation
      CLEAR TVKO-BUKRS.
      SELECT SINGLE BUKRS FROM TVKO INTO TVKO-BUKRS
        WHERE VKORG = LIKP-VKORG.
      J1IJ300-BUKRS = TVKO-BUKRS.
      SELECT SINGLE WAERS FROM T001 INTO J1IJ300-WAERS
        WHERE BUKRS = J1IJ300-BUKRS.
    ENDFORM.                    " GET_COMP_CODE
    FORM READ_CUSTOMISATION.
      SELECT SINGLE WERKS INTO J1IJ300-WERKS
           FROM   LIPS
           WHERE  VBELN = DELIVERY.
    Plant level customisation
      SELECT SINGLE * FROM  J_1IWRKCUS
             WHERE  J_1IWERKS   = J1IJ300-WERKS .
      IF SY-SUBRC <> 0.
        MESSAGE E303 WITH 'plant' J1IJ300-WERKS 'J_1IWRKCUS'.
      ENDIF.
      IF J_1IWRKCUS-J_1IDEPOT IS INITIAL.
    plant is defined as factory
        MESSAGE E322 WITH J1IJ300-WERKS.
      ENDIF.
      J1IJ300-REGID = J_1IWRKCUS-J_1IREGID.
      TRNTYP = 'DLDO'.
      SELECT SINGLE * FROM J_1IREGSET
           WHERE J_1IREGID = J1IJ300-REGID.
      IF SY-SUBRC <> 0.
        MESSAGE E303 WITH 'Register id' J1IJ300-REGID 'J_1IREGSET'.
      ENDIF.
    ENDFORM.                    " READ_CUSTOMISATION
    *&      Form  GET_ITEM_INFO
          text                                                           *
    -->  p1        text
    <--  p2        text
    FORM GET_ITEM_INFO.
      REFRESH : CRG23D, LRG23D, EXCINV, XLIPS.
      PERFORM READ_DELIVERY_ITEM.
    ENDFORM.                    " GET_ITEM_INFO
    *&      Form  READ_DELIVERY_ITEM
          text                                                           *
    -->  p1        text
    <--  p2        text
    FORM READ_DELIVERY_ITEM.
      DATA : CNT LIKE SY-TABIX.
      CLEAR CNT.
      REFRESH XLIPS.
      SELECT * FROM LIPS
         WHERE VBELN = DELIVERY.
    read the delivery item
    perform plant checking only if in create mode
          IF LIPS-WERKS <> J1IJ300-WERKS.
    plant is different from that of the first item
            SELECT SINGLE J_1IREGID INTO J_1IWRKCUS-J_1IREGID
                 FROM   J_1IWRKCUS
                 WHERE  J_1IWERKS = LIPS-WERKS.
            IF SY-SUBRC <> 0.
              MESSAGE E303 WITH 'plant' LIPS-WERKS 'J_1IWRKCUS'.
            ENDIF.
            IF J_1IWRKCUS-J_1IREGID <> J1IJ300-REGID.
    register id of the two plants are different
              MESSAGE E338 WITH DELIVERY.
            ENDIF.
          ENDIF.
        CLEAR XLIPS.
    store the item details
        XLIPS-VBELN = LIPS-VBELN.
        XLIPS-POSNR = LIPS-POSNR.
        XLIPS-MATNR = LIPS-MATNR.
        PERFORM GET_MATERIAL_DESC
              USING XLIPS-MATNR
                    XLIPS-MAKTX.
       XLIPS-WERKS = LIPS-WERKS.
       XLIPS-LGORT = LIPS-LGORT.
       XLIPS-CHARG = LIPS-CHARG.
       XLIPS-LFIMG = LIPS-LFIMG.
       XLIPS-MEINS = LIPS-VRKME.                           "changed 2.3.98
       CLEAR : XLIPS-BED, XLIPS-SED, XLIPS-AED.
       XLIPS-CUR = J1IJ300-BUKRS.
       CNT = CNT + 1.
       XLIPS-INDEX = CNT.
       XLIPS-SELFLAG = 'F'.
       APPEND XLIPS.
    ENDSELECT.
    ENDFORM.                    " READ_DELIVERY_ITEM
    *&      Form  GET_MATERIAL_DESC
          text                                                           *
    -->  p1        text
    <--  p2        text
    FORM GET_MATERIAL_DESC USING MATNR MAKTX.
      SELECT SINGLE MAKTX FROM  MAKT INTO MAKTX
             WHERE  MATNR       = MATNR
             AND    SPRAS       = 'E'            .
    ENDFORM.                               " GET_MATERIAL_DESC
    *&      Form  LOCKING
          text                                                           *
    -->  p1        text
    <--  p2        text
    FORM LOCKING.
    REFRESH LOCK_TABLE.
    LOOP AT XLIPS.
      LOCK_TABLE-WERKS  = XLIPS-WERKS.
      LOCK_TABLE-MATNR  = XLIPS-MATNR.
      LOCK_TABLE-STATUS = UNLOCKED.
      COLLECT LOCK_TABLE.
    ENDLOOP.
    PERFORM LOCK_UNLOCK_PLANT_MATERIAL USING LOCKED.
      SELECT TRNTYP DOCNO DOCYR ZEILE INTO
          (LOCKTAB-TRNTYP,
          LOCKTAB-DOCNO,LOCKTAB-DOCYR,
          LOCKTAB-ZEILE)
                              FROM   J_1IEXCDTL
                          WHERE TRNTYP = 'GRPO'
                          AND  WERKS = XLIPS-WERKS
                          AND  LGORT = XLIPS-LGORT
                          AND  MATNR = XLIPS-MATNR
                          AND  CHARG = XLIPS-CHARG.
        APPEND LOCKTAB.
      ENDSELECT.
    *share lock for all excise invoices
      LOOP AT LOCKTAB.
        CALL FUNCTION 'ENQUEUE_EJ_1IEXDTL'
             EXPORTING
                  MODE_J_1IEXCDTL = 'S'
                  MANDT           = SY-MANDT
                  TRNTYP          = LOCKTAB-TRNTYP
                  DOCYR           = LOCKTAB-DOCYR
                  DOCNO           = LOCKTAB-DOCNO
                  ZEILE           = LOCKTAB-ZEILE
             EXCEPTIONS
                  FOREIGN_LOCK    = 1
                  SYSTEM_FAILURE  = 2
                  OTHERS          = 3.
      ENDLOOP.
    ENDFORM.                    " LOCKING
    *&      Form  LOCK_UNLOCK_PLANT_MATERIAL
          text                                                           *
    -->  p1        text
    <--  p2        text
    FORM LOCK_UNLOCK_PLANT_MATERIAL USING ACTION.
      DATA: __UNAME  LIKE SY-UNAME,
            __OBJECT LIKE DD25V-VIEWNAME.
      DATA : BEGIN OF LOCK_STRUCT,
               GRANNAME(10)   VALUE 'J1IJ',
               ENQMODE        VALUE 'E',
               MANDT          LIKE  SY-MANDT,
               WERKS          LIKE  J_1IEXCDTL-WERKS,
               MATNR          LIKE  J_1IEXCDTL-MATNR,
            END OF LOCK_STRUCT.
      LOCK_STRUCT-MANDT = SY-MANDT.
      LOOP AT LOCK_TABLE WHERE STATUS <> ACTION.
    perform the locking/unlocking operation only for the items for which
    it is not already done
        LOCK_STRUCT-WERKS = LOCK_TABLE-WERKS.
        LOCK_STRUCT-MATNR = LOCK_TABLE-MATNR.
       CALL 'C_ENQUEUE'
         ID 'OPCODE'           FIELD ACTION
         ID 'ENQOBJ'           FIELD 'J_1IJ'
         ID '01'               FIELD LOCK_STRUCT
         ID 'COLLISION_UNAME'  FIELD __UNAME
         ID 'COLLISION_OBJECT' FIELD __OBJECT.
       CASE SY-SUBRC.
         WHEN 0.
           LOCK_TABLE-STATUS = ACTION.
           MODIFY LOCK_TABLE.
         WHEN 2.
           MESSAGE E341 WITH LOCK_TABLE-WERKS LOCK_TABLE-MATNR  __UNAME.
         WHEN OTHERS.
           IF ACTION = LOCKED.
             MESSAGE E342 WITH 'locking'
                               LOCK_TABLE-WERKS LOCK_TABLE-MATNR.
           ELSE.
             MESSAGE E342 WITH 'unlocking'
                               LOCK_TABLE-WERKS LOCK_TABLE-MATNR.
           ENDIF.
       ENDCASE.
      ENDLOOP.
    ENDFORM.                    " LOCK_UNLOCK_PLANT_MATERIAL
    *&      Form  RG23D_SELECTION
          text                                                           *
    -->  p1        text
    <--  p2        text
    FORM RG23D_SELECTION.
    REFRESH CRG23D.
    REFRESH ASSIGNED_EXCINV.
    LOOP AT XLIPS.
    *write: / xlips-vbeln,xlips-posnr,xlips-matnr, xlips-meins, xlips-lfimg.
    REFRESH EXCINV.
    CALL FUNCTION 'J_1I6_SELECT_EXCISE_INVOICE_DE'
         EXPORTING
             BUKRS        = J1IJ300-BUKRS
             CHARG        = XLIPS-CHARG
             WERKS        = XLIPS-WERKS
             EXGRP        = EXCGROUP
             MATNR        = XLIPS-MATNR
             QTY_CHECK    = 'X'
             MULTI        = 'X'
             NO_DAY_CHECK = 'X'
             SHIPFROM     = SHIPFROM
             LGORT        = XLIPS-LGORT
         TABLES
              EXC_TAB     = EXCINV
         EXCEPTIONS
              OTHERS       = 1.
         TOTAL_LRG23D = 0.
         ALLOC_LRG23D = 0.
         SORT EXCINV BY DOCYR DOCNO .
         LOOP AT ASSIGNED_EXCINV.
            READ TABLE EXCINV WITH KEY DOCYR = ASSIGNED_EXCINV-DOCYR
                                     DOCNO = ASSIGNED_EXCINV-DOCNO
                                     ZEILE = ASSIGNED_EXCINV-ZEILE
                                     BINARY SEARCH.
            IF SY-SUBRC = 0.
               A_INDEX = SY-TABIX.
               EXCINV-MENGR = EXCINV-MENGR - ASSIGNED_EXCINV-MENGR.
               MODIFY EXCINV INDEX A_INDEX .
            ENDIF.
         ENDLOOP.
         DELETE EXCINV WHERE MENGR = 0.
    total_lrg23d = total balance quantity in the selected excise invoices
    alloc_lrg23d = Quantity allocated to a delivery line item,
    Allocation continues till
      - We have balance quantity in excise invoice selection
      - Till total delivery quantity is allocated
        LOOP AT EXCINV.
      To Force the same shipfrom for all the excise invoices
      Shipfrom Ind can be determined in the start user-exit
        IF  J1IJ300-SHIPFROM_IND = 'Y'.
            IF  XLIPS-INDEX = 1 AND SY-TABIX = 1.
                SHIPFROM = EXCINV-SHIPFROM.
            ENDIF.
            IF SHIPFROM NE EXCINV-SHIPFROM.
               EXCINV-RIND3 = 'X'.
               MODIFY EXCINV.
               CONTINUE.
            ENDIF.
        ENDIF.
      Allocation
        IF XLIPS-LFIMG NE ALLOC_LRG23D.
            TOTAL_LRG23D = TOTAL_LRG23D + EXCINV-MENGR.
            IF XLIPS-LFIMG > TOTAL_LRG23D.
               ALLOC_LRG23D = ALLOC_LRG23D + EXCINV-MENGR.
            ELSE.
               EXCINV-MENGR = XLIPS-LFIMG - ALLOC_LRG23D.
               ALLOC_LRG23D = ALLOC_LRG23D + EXCINV-MENGR.
            ENDIF.
        ELSE.
               EXCINV-RIND3 = 'X'.
         ENDIF.
         MODIFY EXCINV.
         ENDLOOP.
         DELETE EXCINV WHERE RIND3 = 'X'.
         LOOP AT EXCINV.
            MOVE-CORRESPONDING EXCINV TO ASSIGNED_EXCINV.
            APPEND ASSIGNED_EXCINV.
            CLEAR ASSIGNED_EXCINV.
         ENDLOOP.
         IF TOTAL_LRG23D < XLIPS-LFIMG.
            MESSAGE E000 WITH 'Not enough balance in RG23D ......'.
        ENDIF.
    Collect all allocated excise invoices to crg23d table
      LOOP AT EXCINV.
        PERFORM FILL_CRG23D.
        APPEND CRG23D.
      ENDLOOP.
    ENDLOOP.
    ENDFORM.                    " RG23D_SELECTION
    *&      Form  SAVE_DOCUMENT
          text                                                           *
    -->  p1        text
    <--  p2        text
    FORM SAVE_DOCUMENT.
          PERFORM PREPARE_RG23D_DATA.
    Generate RG23D serial number and Excise Invoice Serial Number
       IF J1IJ300-RG23D_SERIALNO = 'Y'.
       PERFORM GENERATE_RG23D_SERIAL ON COMMIT.
       ENDIF.
       PERFORM GENERATE_EXCISE_INV_SERIAL ON COMMIT.
         CALL FUNCTION 'J_1I7_USEREXIT_DEPOT_BEF_SAVE'
              TABLES
                   RG23D   = Z_1IRG23D
              EXCEPTIONS
                   OTHERS  = 1.
         PERFORM UPDATE_RG23D ON COMMIT.
         PERFORM UPDATE_EXCDTL ON COMMIT.
         COMMIT WORK.
        PERFORM LOCK_UNLOCK_PLANT_MATERIAL USING UNLOCKED.
         PERFORM UNLOCKING.
         MESSAGE S333 WITH DELIVERY.
    ENDFORM.                    " SAVE_DOCUMENT
    *&      Form  PREPARE_RG23D_DATA
          text                                                           *
    -->  p1        text
    <--  p2        text
    FORM PREPARE_RG23D_DATA.
      REFRESH Z_1IRG23D.
      LOOP AT CRG23D WHERE MENGE <> 0.
        CLEAR Z_1IRG23D.
        Z_1IRG23D = CRG23D.
        Z_1IRG23D-USNAM = SY-UNAME.
        Z_1IRG23D-CPUDT = SY-DATUM.
        Z_1IRG23D-EXGRP    = EXCGROUP.
        Z_1IRG23D-SRGRP    = SERGROUP.
        APPEND Z_1IRG23D.
        IF CRG23D-ADDAED <> 0 OR CRG23D-ADDSED <> 0 OR CRG23D-ADDAED <> 0 .
    additional excise is applicable
    make quantity zero for A certificate entries
          CLEAR : Z_1IRG23D-MENGE.
    get all the A certificates for the excise document item
          SELECT * FROM J_1IEXCDTL
    TODO : add the transaction type to the selection procedure
                 WHERE RDOC1    = CRG23D-DOCNO
                 AND   RYEAR1   = CRG23D-DOCYR
                 AND   RITEM1   = CRG23D-ZEILE
                 AND   RIND1    = 'G'.
    get the A certificate number
            SELECT SINGLE
                   EXNUM EXYEAR INTO (Z_1IRG23D-EXNUM, Z_1IRG23D-EXYEAR)
                   FROM  J_1IEXCHDR
                   WHERE  TRNTYP = J_1IEXCDTL-TRNTYP
                   AND    DOCYR  = J_1IEXCDTL-DOCYR
                   AND    DOCNO  = J_1IEXCDTL-DOCNO.
            Z_1IRG23D-TRNTYP = J_1IEXCDTL-TRNTYP.
            Z_1IRG23D-DOCYR  = J_1IEXCDTL-DOCYR.
            Z_1IRG23D-DOCNO  = J_1IEXCDTL-DOCNO.
            Z_1IRG23D-ZEILE  = J_1IEXCDTL-ZEILE.
            Z_1IRG23D-EXBED  = ( J_1IEXCDTL-EXBED * CRG23D-MENGE )
                                          / CRG23D-MENGA.
            Z_1IRG23D-EXSED  = ( J_1IEXCDTL-EXSED * CRG23D-MENGE )
                                          / CRG23D-MENGA.
            Z_1IRG23D-EXAED  = ( J_1IEXCDTL-EXAED * CRG23D-MENGE )
                                          / CRG23D-MENGA.
            Z_1IRG23D-RG23ASER = J_1IEXCDTL-RG23ASER.
            Z_1IRG23D-RG23CSER = J_1IEXCDTL-RG23CSER.
            Z_1IRG23D-RGPLASER = J_1IEXCDTL-RGPLASER.
            APPEND Z_1IRG23D.
          ENDSELECT.
        ENDIF.
    ENDLOOP.
    ENDFORM.                    " PREPARE_RG23D_DATA
    *&      Form  UPDATE_RG23D
          text                                                           *
    -->  p1        text
    <--  p2        text
    FORM UPDATE_RG23D.
    *update the rg23d register
      INSERT J_1IRG23D FROM TABLE Z_1IRG23D ACCEPTING DUPLICATE KEYS.
      IF SY-SUBRC <> 0.
        MESSAGE A308 WITH 'J_1IRG23D'.
      ENDIF.
    ENDFORM.                    " UPDATE_RG23D
    *&      Form  UPDATE_EXCDTL
          text                                                           *
    -->  p1        text
    <--  p2        text
    FORM UPDATE_EXCDTL.
      LOOP AT CRG23D WHERE MENGE <> 0.
    update the remaining quantity in the excise invoice item tables
        UPDATE J_1IEXCDTL
           SET      MENGR   = MENGR - CRG23D-MENGE
                    AENAM   = SY-UNAME
                    AEDAT   = SY-DATUM
           WHERE    TRNTYP  = 'GRPO'
             AND    DOCYR   = CRG23D-DOCYR
             AND    DOCNO   = CRG23D-DOCNO
             AND    ZEILE   = CRG23D-ZEILE.
        IF SY-SUBRC <> 0.
          MESSAGE A308 WITH 'J_1IRG23D'.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " UPDATE_EXCDTL
    *&      Form  FILL_CRG23D
          text                                                           *
    -->  p1        text
    <--  p2        text
    FORM FILL_CRG23D.
      CRG23D-TRNTYP   = EXCINV-TRNTYP.
      CRG23D-DOCYR    = EXCINV-DOCYR.
      CRG23D-DOCNO    = EXCINV-DOCNO.
      CRG23D-ZEILE    = EXCINV-ZEILE.
      CRG23D-VBELN    = XLIPS-VBELN.
      CRG23D-POSNR    = XLIPS-POSNR.
      CRG23D-EXNUM    = EXCINV-EXNUM.
      CRG23D-EXYEAR   = EXCINV-EXYEAR.
      CRG23D-LIFNR    = EXCINV-LIFNR.
      CRG23D-MATNR    = EXCINV-MATNR.
      CRG23D-MAKTX    = EXCINV-MAKTX.
      CRG23D-CHAPID   = EXCINV-CHAPID.
      CRG23D-MEINS    = EXCINV-MENGR_UOM.
      CRG23D-WERKS    = EXCINV-WERKS.
      CRG23D-EXCUR    = EXCINV-EXCUR.
      CRG23D-RG23ASER = EXCINV-RG23ASER.
      CRG23D-RG23CSER = EXCINV-RG23CSER.
      CRG23D-RGPLASER = EXCINV-RGPLASER.
      CRG23D-MENGR    = EXCINV-MENGR.
      CRG23D-MENGA    = EXCINV-MENGA.
      CRG23D-MENGE    = EXCINV-MENGR.            " Move the allocated Qty
      CRG23D-EXBED    = ( EXCINV-EXBED  * CRG23D-MENGE ) / EXCINV-MENGA.
      CRG23D-EXSED    = ( EXCINV-EXSED  * CRG23D-MENGE ) / EXCINV-MENGA.
      CRG23D-EXAED    = ( EXCINV-EXAED  * CRG23D-MENGE ) / EXCINV-MENGA.
    ENDFORM.                    " FILL_CRG23D
    *&      Form  UPDATE_DOCUMENT
          text                                                           *
    -->  p1        text
    <--  p2        text
    FORM UPDATE_DOCUMENT.
    LOOP AT XLIPS.
      UPDATE J_1IRG23D SET STATUS = 'P'
      WHERE  VBELN       = XLIPS-VBELN
      AND    POSNR       = XLIPS-POSNR.
    ENDLOOP.
    COMMIT WORK.
    ENDFORM.                    " UPDATE_DOCUMENT
    *&      Form  DELIVERY_START_USER_EXIT
          text                                                           *
    -->  p1        text
    <--  p2        text
    FORM DELIVERY_START_USER_EXIT.
    CALL FUNCTION 'J_1I7_USEREXIT_EXGRP_DETERM'
         EXPORTING
              EXCGRP         = EXCGROUP
            MBLNR          =
            MJAHR          =
            VENDOR         =
              VBELN          = DELIVERY
         IMPORTING
              EXCGRP         = EXCGROUP
              SHIPFROM_IND   = J1IJ300-SHIPFROM_IND
              RG23D_SERIALNO = J1IJ300-RG23D_SERIALNO
         EXCEPTIONS
              OTHERS         = 1.
    CALL FUNCTION 'J_1I7_USEREXIT_SERGRP_DETERM'
         EXPORTING
              SRGRP          = SERGROUP
            MBLNR          =
            MJAHR          =
              VBELN          = DELIVERY
         IMPORTING
              SRGRP          = SERGROUP
         EXCEPTIONS
              OTHERS         = 1.
    ENDFORM.                    " DELIVERY_START_USER_EXIT
    *&      Form  GENERATE_RG23D_SERIAL
          text                                                           *
    -->  p1        text
    <--  p2        text
    FORM GENERATE_RG23D_SERIAL.
      LOOP AT Z_1IRG23D WHERE MENGE <> 0.
      CLEAR: FOLIO, SERIALNO.
      SELECT MAX( FOLIO ) MAX( SERIALNO )
      INTO   (Z_1IRG23D-FOLIO, Z_1IRG23D-SERIALNO)
      FROM   J_1IRG23D
      WHERE  TRNTYP = Z_1IRG23D-TRNTYP
      AND    DOCNO  = Z_1IRG23D-DOCNO
      AND    DOCYR  = Z_1IRG23D-DOCYR
      AND    ZEILE  = Z_1IRG23D-ZEILE.
      MODIFY Z_1IRG23D.
      ENDLOOP.
    ENDFORM.                    " GENERATE_RG23D_SERIAL
    *&      Form  GENERATE_EXCISE_INV_SERIAL
          text                                                           *
    -->  p1        text
    <--  p2        text
    FORM GENERATE_EXCISE_INV_SERIAL.
      CLEAR: DEPEXNUM, DEPEXYEAR.
    CALL FUNCTION 'J_1I6_DETERMINE_EXC_YEAR'
         EXPORTING
              I_BUKRS      = J1IJ300-BUKRS
         IMPORTING
              EXCISE_YEAR  = DEPEXYEAR
         EXCEPTIONS
              MISS_COMPANY = 1
              OTHERS       = 2.
      IF SY-SUBRC NE 0.
        MESSAGE E526 WITH 'Company ' J1IJ300-BUKRS.
      ENDIF.
      CALL FUNCTION 'NUMBER_GET_NEXT'
           EXPORTING
                NR_RANGE_NR             = '01'
                OBJECT                  = 'J_1IDEPINV'
                QUANTITY                = '1'
                SUBOBJECT               = SERGROUP
                TOYEAR                  = DEPEXYEAR
           IMPORTING
                NUMBER                  = DEPEXNUM
           EXCEPTIONS
                INTERVAL_NOT_FOUND      = 1
                NUMBER_RANGE_NOT_INTERN = 2
                OBJECT_NOT_FOUND        = 3
                QUANTITY_IS_0           = 4
                QUANTITY_IS_NOT_1       = 5
                INTERVAL_OVERFLOW       = 6
                OTHERS                  = 7.
      CASE SY-SUBRC.
        WHEN 0.
        WHEN 1.
          MESSAGE A336 WITH 'internal document' ': Interval not found'
                            '. Number object : J_1IDEPINV'.
        WHEN 3.
          MESSAGE A336 WITH 'internal document' ': Object not found'
                            '. Number object : J_1IDEPINV'.
        WHEN OTHERS.
          MESSAGE A336 WITH 'internal document'
                            '. Number object : J_1IDEPINV'.
      ENDCASE.
    Update Depot Excise Invoice Year and Number in the table
      LOOP AT Z_1IRG23D.
        Z_1IRG23D-SERIALNO  = Z_1IRG23D-SERIALNO + 1.
        Z_1IRG23D-DEPEXYEAR = DEPEXYEAR.
        Z_1IRG23D-DEPEXNUM  = DEPEXNUM.
        MODIFY Z_1IRG23D.
      ENDLOOP.
    ENDFORM.                    " GENERATE_EXCISE_INV_SERIAL
    *&      Form  UNLOCKING
          text
    -->  p1        text
    <--  p2        text
    FORM UNLOCKING.
      LOOP AT LOCKTAB.
        CALL FUNCTION 'DEQUEUE_EJ_1IEXDTL'
             EXPORTING
                  MODE_J_1IEXCDTL = 'S'
                  MANDT           = SY-MANDT
                  TRNTYP          = LOCKTAB-TRNTYP
                  DOCYR           = LOCKTAB-DOCYR
                  DOCNO           = LOCKTAB-DOCNO
                  ZEILE           = LOCKTAB-ZEILE.
      ENDLOOP.
    ENDFORM.                    " UNLOCKING

Maybe you are looking for