Update Rules to deal with Asymmetrical Records

Hello,
Is there a way with standard update rules one can handle the following scenario:
Incoming Datapackage:
Char  Char1   Char2
XYZ    A      -
XYZ    -      B
Desired result in an ODS (Char is the key of the ODS)
Char  Char1   Char2
XYZ   A         B
It is not known ahead of time whether char 1 or char 2 will be filled in so 2 URs is not an option.
An intermediate ODS or recursive look-ups are option but I am wondering if there is an option like:
"update only if non-blank" or is that too much to expect?

Why would the active table be empty? All active records will be saved to the active ODS Table...
I would code the following:
Select CHAR2 FROM ODS_TABLE WHERE CHAR = XYZ INTO TABLE
ODS_VALUE.
IF sy-subrc = 0.
DATA_PACKAGE-CHAR2 = ODS_VALUE-CHAR2.
MODIFY DATA_PACKAGE.
ENDIF.

Similar Messages

  • How to deal with delete record in generic delta of generic datasource

    Hi,
       Anyone can give me suggestion about the delete record in generic delta  of generic data. I need extract data with a generic datasource and hope deleted record in datasource also can be "delete" in next delta extraction. I do a test with generic delta. It seem that the delete record can not be updated in ODS. but updated record can be updated in next delta extraction.
    How dose BW generic delta deal with the deleted record with generic delta mechanisim? Or how can I use generic delta mechanisim to realize that BW "delete" the deleted record of source system in ODS with delta extraction?
    Thanks in advance!
    Billy

    Delete is not supported in delta mechanism of generic delta extractor. You will need to add a workaround for that.
    - Capture the deleted records somewhere (maybe enhance the txn deleting the record so the key is written to a Z table). Take these records to BW and manipulate the recordmode to affect deletion of corresponding record from ODS.
    - If your generic delta is based on FM, and if the 'delete' is captured in change document tables, add the logic to check change document tables whether any records are deleted, and if yes, send those to BW with appropriate recordmode to achieve deletion.

  • Update rule not working with high data load.

    Hi all,
    i have a problem with a update rule: it's an update loop in a dso, in the start routine i do 3 select for all entries in data-package on the active table of another structure; then i read those table to update some values in my update rule.
    I did some test and it seemed to work well (i tryed for example just for a plant) but when i launched it for all the records in the dso the result was differente and, for the same plant, the values where not updated correctly (they were blank).
    Now the routine is really the same so it sound strange to me that launching the infopackage without filters i can't get the same correct result of my previous test but i was wondering what could be the reason of this error...
    Anyone can help?
    The start routine is this:
      REFRESH i_tab.
      SELECT field1 field2 field3
        INTO TABLE i_tab
        FROM target_dso
        FOR ALL ENTRIES IN DATA_PACKAGE
        WHERE deliv_numb = DATA_PACKAGE-deliv_numb
          AND deliv_item = DATA_PACKAGE-deliv_item
          AND act_gi_dte <> l_blank_date.
    then i read this table in the other routines...

    It is hard to say.  What does the update rule look like?
    after the read statement, you could check the return code.  If it is not zero, go into an infinite loop, and debug it via SM37.
    read table....
    IF sy-subrc <> 0.
      WHILE 1 = 1.
        "debug in SM37.
      ENDWHILE.
    ENDIF.

  • [Solved]Updated system, and dealing with glibc issue.

    I neglected to update/use Arch for quite some time, and decided to last night. I quickly encountered problems and I've read https://www.archlinux.org/news/filesyst … equired-1/, https://www.archlinux.org/news/the-lib- … a-symlink/, https://www.archlinux.org/news/fontconf … -required/, http://allanmcrae.com/2012/07/updating- … e-install/, and many threads about issues with filesystem and/or glibc.
    First, I followed the instructions to resolve the issue with fontconfig.
    <read various threads>
    Then, I landed here: https://wiki.archlinux.org/index.php/De … iki:usrlib. I installed glibc-2.16.0-1-x86_64 using the instructions provided. IIRC, I was still experiencing conflicts with filesystem. I came across a thread where a user stated that instructions from Allan McRae's blog (from the link at the top) allowed him to upgrade his system. I tried it out, and I got around the filesystem issue as well as the issue with dependencies linked to tzdata, etc. My issue now lies with the pacman -Su step:
    [asdf@asdf ~]$ sudo pacman -Su
    :: Starting full system upgrade...
    resolving dependencies...
    looking for inter-conflicts...
    Targets (1): glibc-2.16.0-5
    Total Installed Size: 37.63 MiB
    Net Upgrade Size: 0.05 MiB
    Proceed with installation? [Y/n] y
    (1/1) checking package integrity [###############################] 100%
    (1/1) loading package files [###############################] 100%
    (1/1) checking for file conflicts [###############################] 100%
    error: failed to commit transaction (conflicting files)
    glibc: /lib exists in filesystem
    Errors occurred, no packages were upgraded.
    Following Issue 2 under https://wiki.archlinux.org/index.php/De … iki:usrlib, I entered
    $ grep '^lib/' /var/lib/pacman/local/*/files
    . The output was:
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/security/
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/security/pam_ck_connector.so
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/system/
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/system/basic.target.wants/
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/system/basic.target.wants/console-kit-log-system-start.service
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/system/console-kit-daemon.service
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/system/console-kit-log-system-restart.service
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/system/console-kit-log-system-start.service
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/system/console-kit-log-system-stop.service
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/system/halt.target.wants/
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/system/halt.target.wants/console-kit-log-system-stop.service
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/system/kexec.target.wants/
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/system/kexec.target.wants/console-kit-log-system-restart.service
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/system/poweroff.target.wants/
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/system/poweroff.target.wants/console-kit-log-system-stop.service
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/system/reboot.target.wants/
    /var/lib/pacman/local/consolekit-0.4.5-2/files:lib/systemd/system/reboot.target.wants/console-kit-log-system-restart.service
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/ld-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/ld-linux-x86-64.so.2
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libBrokenLocale-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libBrokenLocale.so.1
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libSegFault.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libanl-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libanl.so.1
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libc-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libc.so.6
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libcidn-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libcidn.so.1
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libcrypt-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libcrypt.so.1
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libdl-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libdl.so.2
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libm-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libm.so.6
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libmemusage.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnsl-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnsl.so.1
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_compat-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_compat.so.2
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_db-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_db.so.2
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_dns-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_dns.so.2
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_files-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_files.so.2
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_hesiod-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_hesiod.so.2
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_nis-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_nis.so.2
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_nisplus-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_nisplus.so.2
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libpcprofile.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libpthread-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libpthread.so.0
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libresolv-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libresolv.so.2
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/librt-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/librt.so.1
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libthread_db-1.0.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libthread_db.so.1
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libutil-2.16.so
    /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libutil.so.1
    /var/lib/pacman/local/hal-0.5.14-6/files:lib/
    /var/lib/pacman/local/hal-0.5.14-6/files:lib/udev/
    /var/lib/pacman/local/hal-0.5.14-6/files:lib/udev/rules.d/
    /var/lib/pacman/local/hal-0.5.14-6/files:lib/udev/rules.d/90-hal.rules
    /var/lib/pacman/local/lib32-glibc-2.14-5/files:lib/
    /var/lib/pacman/local/lib32-glibc-2.14-5/files:lib/ld-linux.so.2
    /var/lib/pacman/local/ntfs-3g-2012.1.15-4/files:lib/
    Being a newb, I didn't want to do something stupid, so I didn't take any action here..
    I proceeded on with trying
    find /lib -exec pacman -Qo -- {} +
    The output was:
    error: cannot determine ownership of directory '/lib'
    /lib/libutil.so.1 is owned by glibc 2.16.0-1
    /lib/libnsl.so.1 is owned by glibc 2.16.0-1
    /lib/libnss_compat-2.16.so is owned by glibc 2.16.0-1
    /lib/libSegFault.so is owned by glibc 2.16.0-1
    /lib/ld-linux.so.2 is owned by lib32-glibc 2.14-5
    /lib/ld-2.16.so is owned by glibc 2.16.0-1
    /lib/libpthread.so.0 is owned by glibc 2.16.0-1
    /lib/libnss_nisplus.so.2 is owned by glibc 2.16.0-1
    /lib/libthread_db-1.0.so is owned by glibc 2.16.0-1
    /lib/librt-2.16.so is owned by glibc 2.16.0-1
    /lib/libnss_files.so.2 is owned by glibc 2.16.0-1
    error: cannot determine ownership of directory '/lib/ufw'
    error: No package owns /lib/ufw/user6.rules.pacsave
    error: No package owns /lib/ufw/user.rules.pacsave
    error: cannot determine ownership of directory '/lib/udev'
    error: cannot determine ownership of directory '/lib/udev/rules.d'
    /lib/udev/rules.d/90-hal.rules is owned by hal 0.5.14-6
    /lib/libnss_hesiod-2.16.so is owned by glibc 2.16.0-1
    /lib/libnss_dns.so.2 is owned by glibc 2.16.0-1
    /lib/libnss_hesiod.so.2 is owned by glibc 2.16.0-1
    /lib/libm.so.6 is owned by glibc 2.16.0-1
    /lib/libnss_files-2.16.so is owned by glibc 2.16.0-1
    /lib/libc-2.16.so is owned by glibc 2.16.0-1
    /lib/libBrokenLocale.so.1 is owned by glibc 2.16.0-1
    /lib/libdl.so.2 is owned by glibc 2.16.0-1
    /lib/libutil-2.16.so is owned by glibc 2.16.0-1
    /lib/libBrokenLocale-2.16.so is owned by glibc 2.16.0-1
    /lib/libpthread-2.16.so is owned by glibc 2.16.0-1
    /lib/libnss_nisplus-2.16.so is owned by glibc 2.16.0-1
    /lib/librt.so.1 is owned by glibc 2.16.0-1
    /lib/libnss_nis-2.16.so is owned by glibc 2.16.0-1
    /lib/libc.so.6 is owned by glibc 2.16.0-1
    /lib/libcrypt-2.16.so is owned by glibc 2.16.0-1
    /lib/libresolv-2.16.so is owned by glibc 2.16.0-1
    /lib/libnss_db.so.2 is owned by glibc 2.16.0-1
    /lib/libcidn.so.1 is owned by glibc 2.16.0-1
    /lib/libresolv.so.2 is owned by glibc 2.16.0-1
    /lib/libmemusage.so is owned by glibc 2.16.0-1
    /lib/ld-linux-x86-64.so.2 is owned by glibc 2.16.0-1
    error: cannot determine ownership of directory '/lib/security'
    /lib/security/pam_ck_connector.so is owned by consolekit 0.4.5-2
    /lib/libanl-2.16.so is owned by glibc 2.16.0-1
    /lib/libnss_compat.so.2 is owned by glibc 2.16.0-1
    /lib/libcidn-2.16.so is owned by glibc 2.16.0-1
    /lib/libm-2.16.so is owned by glibc 2.16.0-1
    /lib/libcrypt.so.1 is owned by glibc 2.16.0-1
    error: cannot determine ownership of directory '/lib/systemd'
    error: cannot determine ownership of directory '/lib/systemd/system'
    /lib/systemd/system/console-kit-daemon.service is owned by consolekit 0.4.5-2
    /lib/systemd/system/console-kit-log-system-restart.service is owned by consolekit 0.4.5-2
    error: cannot determine ownership of directory '/lib/systemd/system/kexec.target.wants'
    /lib/systemd/system/kexec.target.wants/console-kit-log-system-restart.service is owned by consolekit 0.4.5-2
    error: cannot determine ownership of directory '/lib/systemd/system/basic.target.wants'
    /lib/systemd/system/basic.target.wants/console-kit-log-system-start.service is owned by consolekit 0.4.5-2
    error: cannot determine ownership of directory '/lib/systemd/system/poweroff.target.wants'
    /lib/systemd/system/poweroff.target.wants/console-kit-log-system-stop.service is owned by consolekit 0.4.5-2
    error: cannot determine ownership of directory '/lib/systemd/system/halt.target.wants'
    /lib/systemd/system/halt.target.wants/console-kit-log-system-stop.service is owned by consolekit 0.4.5-2
    error: cannot determine ownership of directory '/lib/systemd/system/reboot.target.wants'
    /lib/systemd/system/reboot.target.wants/console-kit-log-system-restart.service is owned by consolekit 0.4.5-2
    /lib/systemd/system/console-kit-log-system-stop.service is owned by consolekit 0.4.5-2
    /lib/systemd/system/console-kit-log-system-start.service is owned by consolekit 0.4.5-2
    /lib/libdl-2.16.so is owned by glibc 2.16.0-1
    /lib/libnsl-2.16.so is owned by glibc 2.16.0-1
    /lib/libnss_nis.so.2 is owned by glibc 2.16.0-1
    /lib/libnss_dns-2.16.so is owned by glibc 2.16.0-1
    /lib/libpcprofile.so is owned by glibc 2.16.0-1
    /lib/libnss_db-2.16.so is owned by glibc 2.16.0-1
    /lib/libanl.so.1 is owned by glibc 2.16.0-1
    /lib/libthread_db.so.1 is owned by glibc 2.16.0-1
    Again, I'm not sure what to do here.
    On an irrelevant note, a red flag went up earlier. By some means, it appears I messed up Arch. Is there a chance I can fix the issue with the kernel or is the best option a reinstall?
    (482/563) upgrading linux [################] 100%
    >>> Updating module dependencies. Please wait ...
    depmod: ERROR: could not open directory /lib/modules/3.6.10-1-ARCH: No such file or directory
    depmod: FATAL: could not search modules: No such file or directory
    >>> Generating initial ramdisk, using mkinitcpio. Please wait...
    ==> Building image from preset: 'default'
    -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
    ==> ERROR: '/lib/modules/3.6.10-1-ARCH' is not a valid kernel module directory
    ==> Building image from preset: 'fallback'
    -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
    ==> ERROR: '/lib/modules/3.6.10-1-ARCH' is not a valid kernel module directory
    error: command failed to execute correctly
    (498/563) upgrading nvidia [################] 100%
    depmod: ERROR: could not open directory /lib/modules/3.6.10-1-ARCH: No such file or directory
    depmod: FATAL: could not search modules: No such file or directory
    If your card is from the 7xxx series or earlier, install nvidia-304xx
    [asdf@asdf ~]$ ls -ld /lib
    drwxr-xr-x 6 root root 4096 Dec 22 15:11 /lib
    [asdf@asdf ~]$ mkinitcpio -p linux
    ==> Building image from preset: 'default'
    -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
    ==> ERROR: '/lib/modules/3.6.10-1-ARCH' is not a valid kernel module directory
    ==> Building image from preset: 'fallback'
    -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
    ==> ERROR: '/lib/modules/3.6.10-1-ARCH' is not a valid kernel module directory
    Thanks in advance.
    Last edited by illusory (2012-12-24 00:24:47)

    I checked out https://wiki.archlinux.org/index.php/Initramfs, and I'm not sure what to do. I rebooted a few times in attempt to get things going. I'm assuming I need to start by logging in to the live CD as root and mounting the sda in which Arch is installed? I don't know how to mount root nor know the complete title for the Arch partition (sda x,x). Sorry for the hassle.
    Edit: Found https://wiki.archlinux.org/index.php/Ch … partitions. Be back in a bit.
    I currently have the temporary filesystems mounted, chrooted, and am in bash.
    # mkinitcpio -p linux
    doesn't work. I tried
    mkinitcpio -g ..... 3.6.10-1-ARCH
    and I received something about 3.6.10 and a module directory.
    Last edited by illusory (2012-12-23 23:26:00)

  • Oracle 8i SQL - Dealing with no records matching a value

    Warning: before you read this, please understand I'm no expert on SQL, so it's quite likely I screwed something obvious up...
    I'm trying to do a query kind of like the following:
    SELECT
    BOM.COMPONENT, BOM.QTY_PER, BOM.PARENT, BOM2.PARENT_QTY_PER
    FROM
    BOM BOM, BOM BOM2
    WHERE
    BOM2.COMPONENT=BOM.PARENT AND
    BOM.TOP_ASSY='ABC-123'
    (Don't worry about my punctuation, my company only allows me to do [read-only] queries through Excel, so I don't need the semi-colons)
    What I'm doing is pulling information from the bill of materials (BOM) for a particular assembly (BOM.TOP_ASSY). Each assembly has components (BOM.COMPONENT), and each component has a parent part (BOM.PARENT), which it goes into. Each parent part will also have its own parent part, unless the parent part is the assembly for which I'm querying (BOM.TOP_ASSY) - in the example above, the assembly I'm looking for is 'ABC-123'.
    This leads me to my problem. Since I'm looking for the QTY_PER for both the component and the parent, I have to refer to two separate copies of the BOM table. And, since BOM.PARENT could equal BOM.TOP_ASSY, and BOM.TOP_ASSY has no parent, so it can't be a component, so it would never be in the column BOM.COMPONENT. Thus, when I run this query, all components that go directly into the top assembly ('ABC-123') are left off the query.
    Is there any way to retrieve the records for the components that go directly into the top assembly, and just make BOM2.PARENT_QTY_PER equal to 0? Basically, I only want BOM2.PARENT_QTY_PER to equal something if the parent is also a component, but 0 if it's the top assembly.
    Using NVL doesn't help, and since I'm stuck with an Oracle 8i database to query, I can't use CASE...WHEN either (though, I don't even know if this is possible with a case statement or not)...
    I don't even know if this is possible, but could someone let me know one way or the other?
    Thanks so much!

    Hi,
    user11033437 wrote:
    The whole example with the BOM and BOM2 tables were just an example of what I'm actually doing. What I'm actually doing is much more complex, and since it's all in VBA code, it was much easier for me to make up a simple example then to actually get my SQL out of VBA That's an excellent approach! I suggest you continue with it. Make sure the tiny test situation works as posted, and then, when it does work perfectly, make it a little more like your real case (say, add just one more condition in the WHERE clause), and test again.
    (which looks like this:
    strSQL = "SELECT "
    strSQL = strSQL & "C_BOM.BILL_LEVEL, "
    strSQL = strSQL & "C_BOM.COMP_PART_NBR, "
    strSQL = strSQL & "C_PART.PART_DESC, " )
    But, in the interest of getting my query to work, and hopefully learning a few things in the process, I've extracted my actual SQL, and pasted it below:
    SELECT
         C_BOM.BILL_LEVEL,
         C_BOM.COMP_PART_NBR,
         C_PART.PART_DESC,
         C_PART.PART_TYPE,
         C_BOM.QTY_PER,
         C_BOM.BOM_UM,
         C_BOM.BOM_DOC_NBR,
         C_BOM.OPER_NBR,
         C_BILL.COMP_OFF_ADJ,
         C_PART.QTY_ON_HAND,
         P_PART.QTY_ON_HAND,
         NVL(P_BOM.QTY_PER,0)
    FROM
         PART C_PART,
         PART P_PART,
         BILL C_BILL,
         V087_BOM C_BOM,
         V087_BOM P_BOM
    WHERE
         C_PART.PART_NBR=C_BOM.COMP_PART_NBR AND
         P_PART.PART_NBR=C_BOM.BOM_DOC_NBR AND  --fixed a typo here from extracting from vba
         P_BOM.COMP_PART_NBR (+) = C_BOM.BOM_DOC_NBR AND
         C_BILL.COMP_PART_NBR=C_BOM.COMP_PART_NBR AND 
         C_BILL.BOM_DOC_NBR = C_BOM.BOM_DOC_NBR AND
         ((C_BOM.STATUS = 'RL') AND
         (C_BOM.PART_NBR= 'ABC-123') AND
         (C_BOM.END_EFF_DT>sysdate) AND
         (C_BOM.BEGN_EFF_DT<=sysdate) AND
         (C_BOM.VIEW_CODE<>'E') AND
         (P_BOM.STATUS = 'RL') AND
         (P_BOM.PART_NBR= 'ABC-123') AND
         (P_BOM.END_EFF_DT>sysdate) AND
         (P_BOM.BEGN_EFF_DT<=sysdate) AND
         (P_BOM.VIEW_CODE <> 'E') AND
         (C_BILL.VIEW_CODE <> 'E') AND     <--for some reason my <> is being parsed out here
         (C_BILL.QTY_PER_TYPE <> 0) AND  <--for some reason my <> is being parsed out here
         (C_BILL.END_EFF_DT>sysdate) AND
         (C_BILL.BEGN_EFF_DT<=sysdate))
    ORDER BY
         C_BOM.BILL_LEVEL, C_BOM.BOM_DOC_NBRPART is the table with the information associated with each part in the system
    BILL is the table with the bill of materials for each assembly in the system
    V087_BOM is a view that I didn't create, but seems to compile the full bill of materials (from the BILL table) for a top-level assembly (so, the BOM for that part, and for all of it's sub-assemblies, and all of their sub-assemblies, etc.)
    Does that give a clearer picture of what I'm trying to accomplish?
    Edited by: user11033437 on Apr 15, 2009 10:07 AM
    Fixed a typo where indicated (P_PART_NBR changed to P_PART.PART_NBR)I see where you made the join condition between p_bom and c_bom an outer join:
    P_BOM.COMP_PART_NBR (+) = C_BOM.BOM_DOC_NBRThat says: "join the tables like this if possible, but if there's no match, then pretend there was a match in the table marked with the + sign". The resuolting joined row will have bom_doc_nbr (and all the other columns from c_bom), but comp_part_nbr (and all the other columns from p_bom) will be NULL.
    One of those columns is status. Your WHERE clause includes the condition:
    (P_BOM.STATUS = 'RL')Since all columns from p_bom are NULL in this case, the condition above will fail, even though the first condition succeeded.
    You have to add a + to all the conditions in this query that refer to p_bom, including
    ...     (P_BOM.STATUS (+)      = 'RL')      AND
         (P_BOM.PART_NBR (+)    = 'ABC-123') AND
         (P_BOM.END_EFF_DT (+)  > sysdate)   AND If you want to include rows that have no match in the p_part table, you'll have to make all of its conditions outer-joins, too:
         P_PART.PART_NBR (+) = C_BOM.BOM_DOC_NBRIsn't that annoying about the &lt;&gt; operator? This site treats it as some kind of markup, even inside &#123;code&#125; tags. I'm surprised any of them showed up. Thanks for flagging them with comments.
    There's no problem with the other inequality operator, !=. You can use that when you post to this site.

  • 2lis_02_itm records being removed with update rules

    I am using the 2lis_02_itm datasource to populate ODS 0PUR_O01. However, when I extract data into the PSA it removes all but 1 record in the update rules. The PSA contains 2000 records, but the ODS only 1. I have enabled the "STANDARD" setting for scetors in R3 and activated BW and NDI in BF11 as well. I then deleted and filled the purchasing setup tables. Is there someting else I have to do?
    Can someone explain how to determine why the update rules are removing all the records?
    Best regards,
    Kevin

    Kristian,
    Key field are Document number and Itme number. Both fields have variable data in the PSA, so I think I'm okay there. I don't see STORNO or RECORDMODE in the PSA. In the transfer rules, the description for RECORDMODE is "update mode", but I don't see this field header in the PSA.
    Any other suggestions?
    Thanks..

  • Time consuming problem in Self update rule

    Hi all:
         We have time consuming problem in self update rule.I have ODS ZOMS001,for this we created self update rule.In process chain we include this self update rule and during delta update,it takes 20 to 25 mins even if there is two records or 10000 records.In delta for this self update rule,it takes the whole records in ODS
        EX: If i have 10000 records during initialise and 10 records in Delta update...For the delta self update rule it takes 100010 records..But it only update delta records values.
    we have to reduce the total time consuming for this self update during delta..
    Waiting for your inputs.
    It would be helpful for your valuable reply.
    Rgds
    MSK

    I think retransporting is the only option available to you. You cannot modify anything in your production system.
    IF you have a chance to speak with basis people,ask them to open the system status to modifiable for few minutes.
    and make necessary changes in production and bring it back to normal (This is not a best practise in all situations).
    hope this helps.
    Praveen

  • DSO - Cube : Update Rule Error

    When trying to push data from an DSO to a ube, the request stays amber until finally short dumping.
    The update rule is activated and all key figures, characteristics and time characteristics are filled correctly from the DSO.
    The error message in the monitor of the request is:
    <i>Update Rules (15199 => 0 records) : Errors Occurred</i>
    How do I see the exact error description of what caused the update rule not to transfer any records? I can't seem to find much information in the monitor of what went wrong.
    Thanks in advance,
    Matt

    There is a characteristic called 'Reporting Week' that uses some routine to convert the a document  'created on' date in the week/year format (e.g 01.2008).
    Code of this routine is below. All other characteristics or key figures in this update rule are matched with source fields.
    fill the internal table "MONITOR", to make monitor ent *ries
    result value of the routine
    DATA: i_per(3) type n,
    i_year(4) type n.
    CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
    EXPORTING
    I_DATE = COMM_STRUCTURE-createdon
    I_PERIV = 'ZW'
    IMPORTING
    E_BUPER = i_per
    E_GJAHR = i_year
    EXCEPTIONS
    INPUT_FALSE = 1
    T009_NOTFOUND = 2
    T009B_NOTFOUND = 3
    OTHERS = 4
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    concatenate i_year i_per+1(2) into RESULT.
    if the returncode is not equal zero, the result will not be updated
    RETURNCODE = 0.
    if abort is not equal zero, the update process will be canceled
    ABORT = 0.

  • Purchasing cube designing, update rule mapping for 0calday

    Hi All,
       Iam designing cube for Purchasing module in BW. Iam having doubt in mapping for 0calday in update rules, is it with document date or scheduline date. I have searched in SAP cube 0PUR_C01, it is mapped with 0SCHED_DATE( schedule line date). How the difference comes when we choose document date and schedule line date.
      FYI, we are using only schedule line data source, which is giving relevant information.
    Thanks,
    Ram

    Hi Ram,
    Please note:
    0SCHED_DATE: The schedule line date is the day on which the scheduled quantity of the material is to be delivered.
    0DOC_DATE: The date on which document has been craeted.
    Use the first one for purchasing.
    Thanks...
    Shambhu

  • Function Module where-used list does not find update rule programs

    We have function modules called in update rules. The where-used list in the function builder does not find the update rule programs.
    For example, function DATE_GET_WEEK is called in an update rule to InfoCube YCUBE001. The activated program name for this update rule is GP3PWI6PKM5Y3K75A370DIS8I77. When I goto SE37, enter the function DATE_GET_WEEK, click the where-used button, check the programs option and search. The system does not find the program GP3PWI6PKM5Y3K75A370DIS8I77.
    Without this search capability it is difficult to do an impact analysis of changing function modules. Does anyone know of a solution?

    hi,
    i think the reason is the code of update rules' generated program are stored line by line in table(rsaabap), update rules program itself stored in table rsupdrout, link with field codeid, another useful table is rsupdinfo which store infocube, infosource related.  other info may stored in some other rs* and rsa* tables.
    try to create following program in your system, and run, type in the function module name, and will display out the update rules program id, with additional useful info : which infoprovider, infosource, and detail info of the routine and infoobject in the update rule that using that function module. you may modify the program to have better display out list.
    hope this helps.
    REPORT  Z_FM_UPDRUL_WHEREUSED.
    data : lv_sfm,
           lv_line type string,
           lv_where type string.
    tables : rsaabap,RSUPDROUT,rsupdinfo.
    select-options:
    s_fm for rsaabap-LINE.
    start-of-selection.
      loop at s_fm.
        concatenate s_fm-low ' ' into lv_sfm.
        concatenate '%' s_fm-low into lv_line.
        concatenate lv_line '%' into lv_line.
        write : / 'function module', 'update rule id', 'routine id', 'infoobject', 'infocube', 'infosource'.
        select * from rsaabap
        where line like lv_line and objvers = 'A'.
           select * from rsupdrout
           where codeid = rsaabap-codeid and objvers = 'A'.
             select single * from rsupdinfo
             where updid = rsupdrout-updid and objvers = 'A'.
               write: / lv_sfm, rsupdrout-updid, rsaabap-codeid,
                        rsupdrout-iciobjnm, rsupdinfo-infocube,
                        rsupdinfo-isource.
        endselect.
        endselect.
      endloop.

  • Record in DSO Active Table different from result of Update Rule Simulation

    Hi,
    I have a problem with the update of a particular Data Field for certain records via an Update Routine in 3.x Update Rules, from a Source DSO to one Target DSO.
    The DSO Key is the same in the Source DSO and the Target DSO. The Update Routine for the particular (target) Key Figure performs a calculation based on a number of COMM_STRUCTURE Data Fields and gives the Result. For this specific record, the Result being written to the target DSO is 0.00 (It is an 'Amount' Key Figure).
    Based on the Update Routine (which I have run through functionally), this is the incorrect result.
    However, I have run Simulation for this record and the correct result is simulated into the Data Target. I have also run the simulation with Debugging on the Update Rules. Each component/step of the Update Routine is processed correctly, eventually giving the correct result.
    I have tried to re-perform the load and I continually get the same result. This is occurring for a number of records being updated, but not all. Some records where the result of this Data Field is being calculated correctly are 'identical' in all important areas to the problem records.
    The problem records all appear to be in the same Data Package, however that Data Package also contains records being processed correctly.
    Based on the Simulation/Debugging it appears that the Update Routine is correct, however if anyone is willing to have a stab at this I am happy to send you the code.
    Also, a short time ago, we took a copy back from our Production system to our QA system. As a result, this record exists in the QA system as well. I have performed the load there and the record is processed correctly. The Production and QA systems are in line.
    Thanks and Regards,
    Tom

    Hi Ramesh,
    Thanks for posting a response. This is an Update Routine rather than a Start Routine.
    Also, in answer to the Sudhi's reply/post, Yes, the Update Type has been set to Overwrite.
    The problem is actually only present in Production.  Changes was made through our landscape some time ago (this is not my development).
    These changes have been tested through QA and were working. It is only when a reload has taken place in production that this issue has been occurred. A reload has then taken place in QA and has worked successfully.

  • Item text in Purchase Order getting updated with info. record Purchase Order Text

    Hello All,
    I am working in a roll out project and facing issue in text repeating twice for the line item in the Purchase Order for the new company code for which rollout is happening
    Issue:
    Item text in Purchase Order getting updated with info. record Purchase Order Text
    01) PO Text is maintained in the material master under "Purchase Order Text" tab
    02) The PO text that is maintained in material master is getting updated in the Purchase Info. Record
    03) When Purchase Order is created, the "Item Text" gets updated in the Purchase Order automatically only for the new company code for which rollout is happening. when printed, this results in the text getting duplicated twice
    03.1) this behavior is not observed in the Plants/ Company code that is already Live
    Configurations in the system:
    The copying rules for the "Texts for Purchase Orders" is
    Source Object = "Info Record", Source Text="Purchase Order Text", Fix="*"
    We have modified the Purchase Order form to print one of  the condition types maintained for calculating the tax. Other than this there is no change to the plants that are already live.
    I could not locate any "Purchase Organization" / "Company Code" / "Plant specific configuration.
    Am I missing any configuration or where can I look in what is causing this error.
    Request help from the experts in the forum.
    with Regards,
    Dhandapani R

    There is no company/purchasing/plant specific customizing for purchase order text.
    The customizing copying rules for the "Texts for Purchase Orders" affects all equally .
    If the text in the purchase order in ME23N is already filled different to other plants, then you either have a modification in place, or the texts are differently maintained in the referenced data (vendor, material, info record, contract)

  • Filtering records using a start routine inside the update rules for a dmart

    Hi
    I am using a start routine inside the update rules. I want to filter out all records that have 0 in all three fields. My problem is that it not only filters these records, but also filter records with negative values, which I do not want. Only 1 field has a negative value, the other 2 have 0.
    I have tried:
    DELETE DATA_PACKAGE where  /BIC/ZBILLCONS = 0 and /BIC/ZBREVPRIM = 0  and /BIC/ZBREVSUBO = 0 .
      DELETE DATA_PACKAGE where ( /BIC/ZBILLCONS = 0 and /BIC/ZBREVPRIM = 0  and /BIC/ZBREVSUBO = 0 ).
    also tried:
    delete DATA_PACKAGE where /BIC/ZBILLCONS IS INITIAL and
    /BIC/ZBREVPRIM IS INITIAL and  /BIC/ZBREVSUBO IS INITIAL.
    The records are going to 1 cube and 1 ODS, I only have the start routine in 1 update rule. I  view the filtering in the PSA.
    Has anyone ran into this before?

    Try
    delete data_package where /BIC/ZBILLCONS = '0' and /BIC/ZBREVPRIM = '0' and /BIC/ZBREVSUBO = '0' .
    OR
    delete data_package where /BIC/ZBILLCONS EQ '0' and /BIC/ZBREVPRIM EQ '0' and /BIC/ZBREVSUBO EQ '0' .
    Good luck!

  • Help with an Update rule

    Hello,
    I'm trying to write an update rule to transfer some data from one cube to another. I'll try to explain as much as i can :).
    I have an info object FACID (contains the facility ID for XYZ facilities), which has various attributes including one called ZR profit center (ZRPC). This is in both cubes.
    1. I need to only transfer records from cube 1 to cube 2 where the ZRPC has a value.
    2. I need to convert the FACID record to ZRPC record.
    3. I also need to import a Statistical Key Figure (SKF) for those concerned records.
    Cube one:
    FACID         ZRPC       SKF
    1000            4000         PD1
    1234            4456         PD2
    5678            5688         PD3
    4562                            PD4
    3457                            PD5
    2467            4566         PD6
    Cube two:
    FACID        SKF
    4000          PD1
    4456          PD2
    5688          PD3
    4566          PD6
    I hope that makes sense. I need help in the the ABAP program, since I don't have the requisite knowledge to write a complicated program.
    Sam
    PS: Ok, Ok... Who am I kidding.I don't have the knowledge to write even a simple ABAP program. :):)

    Hi,
    [code]
    PROGRAM UPDATE_ROUTINE.
    $$ begin of global - insert your declaration only below this line -
    TABLES: ...             " << This u can define in the TOP include
    Global table. referred to in update routines.
    DATA: ...
    $$ end of global - insert your declaration only before this line -
    FORM compute_data_field
    TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
    USING COMM_STRUCTURE LIKE /BIC/CSDB_VW_KHAT_SHIFT_HOURS
    RECORD_NO LIKE SY-TABIX
    RECORD_ALL LIKE SY-TABIX
    SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
    CHANGING RESULT LIKE /BIC/AHCA_O00500-PROFIT_CTR
    RETURNCODE LIKE SY-SUBRC "Do not use!
    ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
    $$ begin of routine - insert your code only below this line -
    fill the internal table "MONITOR", to make monitor entries
    select * from CI_C001 into table i_CI_C001 where zrpc ne space.
    select * from RI_C001 into table i_RI_C001 for all entries in i_CI_C001
    where ZFACID eq i_CI_C001-zrpc.
    loop at i_CI_001.
    read table i_RI_C001 with key ZFACID = i_CI_C001-zrpc.
    if sy-subrc eq 0.
    update RI_C001 set skf = i_CI_C001-skf.
    endif.
    endloop.
    commit work.
    if sy-subrc ne 0                           " <<  Inserted this code
      rollback.                                   " <<           "
    endif                                           " <<           "
    if abort is not equal zero, the update process will be canceled
    ABORT = 0.
    $$ end of routine - insert your code only before this line -
    ENDFORM.
    [/code]
    aRs

  • My brand new Macbook PRO crashed completely after it went through the iOS 10.7.4 update, I lost everything and Apple just wants to replace the HD and let me deal with the hassle.

    Last Thursday May 10th I received a prompt from the Automatic Update to update the iOS to Ver. 10.7.4, set the start and was watching the progress when it stopped with an error message saying that it was not able to update, right below there was a buttom "RESTART", pressed the buttom and waited to re-boot.....That was the end of my computer, somehow the update crashed my HD beyond recover, it would only show the gray screen with Apple logo in the center and kept beeping, BEEP BEEP BEEP.....PAUSE.....BEEP BEEP BEEP.....PAUSE.....on and on and on and it never past that.
    Friday May 11 I took it to a retailer where I received the bad news that the HD was crashed and the teck couldn't even try to copy anything from it as it couldn't locate it. I checked iCloud on a hope that all my stuff would be there but new surprise, iCloud didn't kept all of my stuff as it was programmed to.
    Now here is the funny part, the tech from the retailer informed me that the only thing they could do was to order a new HD for my 4 months old Macbook and that the time to have my computer back will be at least 15 days, now that is the funny part, I fail to understand why do I have to suffer the hassle of loosing all my data plus wait at least 15th days to have my computer back (meanwhile loose work) on a problem caused by Apple, PROBLEM, not machine defect, clearly my computer had no problem untill I followed the procedure to update.
    On Saturday May 12 I contacted Local Apple Support (I have failed to mention that I live in Brasil) and they informed me that what the dealer said was the only thing that could be done, too bad for me if I lost everything, going to loose several days of work and whenever I receive my computer back will have to re-construct all my life and deal with the forever lost data.....DEAL WITH IT
    After a couple of discussion with Apple Support and the Dealer, I made my decision to take the Macbook to the dealer today for repair and meanwhile I'm opening a case with the Brazilian Justice to have Apple honor with all the trouble and hassle that it is causing me, it's said that I have to take this type of action as I'm a very fan of Apple and it's products, have had several iPods, iPhones, Macbooks, Keyboards, Mouses, Apple TV, etc.....This i the first time I have a problem with a Apple product and got a taste of the "Apple Care", it seems like Apple is more concerned on seeling products then keeping long time customers happy.
    One last thing, today when I was at the dealer to drop my computer for repair, the Technician informed me that he also had a computer crashed and the HD erase on Sunday May 13th in the same way of mine, after the update everything was gone, also he said that we were not the only ones, iPads and iPhones were going trough the same situation, update causing complete breakdown.
    WORD OF ADVISE, BE 1000% SURE THAT YOU HAVE EVRYTHING BACKED UP BEFORE YOU GO THROUGH AN UPDATE.

    rvalezin wrote:
    If I need to back-up every hour of my life in order to be able to save everything from something like this I won´t do anything else.....at least we should be able to trust that Apple tests this updates so situations like this won´t happen.
    That's exactly what Time Machine does for you.  It backs up every hour, so you don't have to.  While it is backing up, you keep on working.  Time Macvhine came with your Mac and you chose not to use it.
    The 10.7.4 update did not cause your hard disk to fail.  Hard disk fail due to mechanical causes.  They are extremely reliable, but that doesn't mean every hard disk will last a long time.  Your mileage WILL vary!
    If you are dependent on your computer and the data stored on it, then you should make sure you have AT LEAST two copies of all data and probably three or four.  You should use at least two means of backing up in case the backup software has a problem.  And you should consider having a backup computer if you live in an area where replacement takes too long (whatever too long is for your business).
    Apple hardware and software is very, very good.  You have documented your experience of this.  But NO hardware or software is perfect.  You also have experience of this.
    It is YOUR responsibility to ensure that your system is set up to protect your data and availability of computing resources.

Maybe you are looking for

  • Intercompany settlement with different currency

    Hello SAP Gurus  Please advice me if any body came across the requirements .  A will issue PO IN US$. A will receive the goods; B will pay the vendor in EURO.I am getting error with currency .How to over come this? Thanks Nick

  • Query on Internal Orders

    Hi I have a query on internal orders. As of now the system is including all the Purchase Requisitions and Purchase Orders into the total commitment. We want Purchase Req to be discluded. How can this be done? Regards Rahul Sharma

  • ChaRM activation in implementation project??

    HI I am quite new to solution manager , i want to ask that if we have created an Implementation Project in Solution Manager What is the pupose of activating ChaRM in it?? when i can do configuration directly from "Configuration" in Solution Manager i

  • BeX Analyzer 7.0 dynamic formatting

    Hello, we have the BeX Analyzer 7.0 and want to format the workbook like highliting the Characteristic names. It is okay when the grid stay as during the formatting. But if someone will change the view by adding anothe characteristic the formatting i

  • How to make a radiobutton submit the page in a report

    Hi All, I have report in which i generated a radio button using HTMLDB_ITEM.RadioGroup. now when the user selects a radio i want to submit the page. Any suggestions are welcomed. Thanks in advance. Message was edited by: user517233