Very obscure MPD error
Hi,
I have been running mpd for a few months and it works (or at least, worked) excellently. But now seeking doesn't work anymore. When I want to seek inside a song, it crashes with error code 17. I cannot reconnect again (error code 13) until I manually restart the mpd daemon. This is the error from the logs:
mpd: src/decoder_api.c:93: decoder_command_finished: Assertion `dc.command != DECODE_COMMAND_SEEK || dc.seek_error || decoder->seeking' failed.
Does anybody know what had happened? I cannot find anything on the internet, except an mpd bugreport with status "closed (unable to reproduce)", which isnt very promising.
Last edited by anadyr (2010-03-04 19:58:49)
anadyr wrote:
That doesn't work.
I now have two different packages: mpd (from the Arch depository), and mpd-git (from the PKGBUILD above). When I use the first one, things work fine; at boot the music immediately starts playing. When I use the second git-one, mpd starts without any error, but the music does not start playing, and I cannot connect to the daemon.
I explicitly did not change any configs/permissions (apart from commenting line 38 in mpd.conf, which apparently has no effect on mpd behavior)
this is EXACTLY what should be worked around by adding that line to /etc/hosts.allow (and works here just fine)
anyway, since the stable package works for you, i consider this as solved
Last edited by Rasi (2010-03-05 22:20:30)
Similar Messages
-
CC will not allow me to install MUSE 2014 ....take me to Adobe site which states "Muse is downloading now..." however after a hour nothing has downloaded ...very Stange no error message either.
Braxs please see Install and update apps - https://helpx.adobe.com/creative-cloud/help/install-apps.html for information on how to install Muse CC 2014.
-
Safari Crash - Problem with doodle (planer) app - doodle web links cause safari to crash with a very strange message "Error - Please make sure Safari is not used in Private Modus" (translated from german) No Privat Modus buttom in ios 7 safari settings! Works fine with an older Safari Version. Web link, call doodle app. You could see the website in the backround working but safari crashes after clicking on the error window. Any suggestions?
Turn off Private Browsing.
Tap "Private" on Safari Screen to disable Private Browsing. When top of screen is white, Private Browsing is off. -
Very very high FEC Errors.
Hi all.
I have very very high FEC errors. I got 4294967263 errors in 5 minutes! It seems far too high.
My Broadband connection keeps dropping out too. I have changed all the filters and cabling. Don't know what else to try.
Thanks in advance.Here you go ......
Connection information
Line state
Connected
Connection time
0 days, 0:11:52
Downstream
11,483 Kbps
Upstream
1,183 Kbps
ADSL settings
VPI/VCI
0/38
Type
PPPoA
Modulation
ITU-T G.992.5
Latency type
Interleaved
Noise margin (Down/Up)
9.1 dB / 5.6 dB
Line attenuation (Down/Up)
31.0 dB / 18.0 dB
Output power (Down/Up)
0.0 dBm / 12.5 dBm
Loss of Framing (Local)
0
Loss of Signal (Local)
0
Loss of Power (Local)
0
FEC Errors (Down/Up)
295 / 4294967263
CRC Errors (Down/Up)
3 / N/A
HEC Errors (Down/Up)
N/A / 0
Error Seconds (Local)
1
Hide Details -
muse cc 2014 - the programme is closing to desktop - different errors i am finding it very unstable - palette errors and _writeSyncCOnn.open ....:SQL error: error'... connection closed . . . operation:ópen', deatillD:'1001
also if i copy from a different app then try copy and paste an element in muse cc and paste it the info from the other copy will be pasted in musecc
-
Hi, im trying to install mpd but im finding it harder than i thought, so i was hoping someone could share his wisdom with me.
I been following the wiki alternative setup but after creating all the files i try to start mpd and get the following error:
mpd /home/ekenbrand/.mpd/mpd.conf
daemon: cannot setgid to 92: Operation not permitted
If i try it using sudo i get this other message:
music directory is not a directory: "/home/ekenbrand/musica"
playlist directory is not a directory: "/home/ekenbrand/.mpd/playlists"
Failed to load database: Failed to open database file "/home/ekenbrand/.mpd/mpd.db": Permission denied
database: Couldn't stat parent directory of db file "/home/ekenbrand/.mpd/mpd.db": Permission denied
Heres some info
sudo cat /etc/group | grep 92
audio::92:mpd,ekenbrand
groups ekenbrand
lp wheel video audio optical storage power sudo users
ls -al .mpd/
total 20
drwxr-xr-x 3 ekenbrand audio 4096 Mar 24 06:21 .
drwx------ 40 ekenbrand users 4096 Mar 24 06:21 ..
-rw-r--r-- 1 ekenbrand audio 7200 Mar 24 06:21 mpd.conf
-rw-r--r-- 1 ekenbrand audio 0 Mar 24 06:02 mpd.db
-rw-r--r-- 1 ekenbrand audio 0 Mar 24 04:47 mpd.log
-rw-r--r-- 1 ekenbrand audio 0 Mar 24 04:47 mpd.pid
-rw-r--r-- 1 ekenbrand audio 0 Mar 24 04:47 mpdstate
drwxr-xr-x 2 ekenbrand audio 4096 Mar 24 04:05 playlists
mpd.conf
music_directory "/home/ekenbrand/musica"
playlist_directory "/home/ekenbrand/.mpd/playlists"
db_file "/home/ekenbrand/.mpd/mpd.db"
log_file "/home/ekenbrand/.mpd/mpd.log"
pid_file "/home/ekenbrand/.mpd/mpd.pid"
state_file "/home/ekenbrand/.mpd/mpdstate"
user "mpd"
group "audio"
I must say i've tried disabling mpd group, changed folder group and permissions, the same errors appear. I have also tried doing a clean install and searched the wiki but had no luck.
Thanks in advance for your help
Last edited by ekenbrand (2011-03-24 23:25:45)try this:
rm -vrf ~/.mpd
mkdir -p ~/.mpd/playlists
music_directory "/home/ekenbrand/musica"
playlist_directory "/home/ekenbrand/.mpd/playlists"
db_file "/home/ekenbrand/.mpd/mpd.db"
log_file "/home/ekenbrand/.mpd/mpd.log"
pid_file "/home/ekenbrand/.mpd/mpd.pid"
state_file "/home/ekenbrand/.mpd/mpd.state"
user "ekenbrand"
group "users"
into ~/.mpd.conf
mpd ~/.mpd.conf
Last edited by JokerBoy (2011-03-24 09:56:44) -
MPD: ERROR: problems opening audio device
Since a day, maybe a little more, mpd is troubling me. When I use mpc, I get the error
ERROR: problems opening audio device
This is my mpd.conf
# An example configuration file for MPD
# See the mpd.conf man page for a more detailed description of each parameter.
# Files and directories #######################################################
# This setting controls the top directory which MPD will search to discover the
# available audio files and add them to the daemon's online database. This
# setting defaults to the XDG directory, otherwise the music directory will be
# be disabled and audio files will only be accepted over ipc socket (using
# file:// protocol) or streaming files over an accepted protocol.
music_directory "/home/adriaan/Music"
# This setting sets the MPD internal playlist directory. The purpose of this
# directory is storage for playlists created by MPD. The server will use
# playlist files not created by the server but only if they are in the MPD
# format. This setting defaults to playlist saving being disabled.
playlist_directory "/var/lib/mpd/playlists"
# This setting sets the location of the MPD database. This file is used to
# load the database at server start up and store the database while the
# server is not up. This setting defaults to disabled which will allow
# MPD to accept files over ipc socket (using file:// protocol) or streaming
# files over an accepted protocol.
db_file "/var/lib/mpd/mpd.db"
# These settings are the locations for the daemon log files for the daemon.
# These logs are great for troubleshooting, depending on your log_level
# settings.
# The special value "syslog" makes MPD use the local syslog daemon. This
# setting defaults to logging to syslog, otherwise logging is disabled.
log_file "/var/log/mpd/mpd.log"
# This setting sets the location of the file which stores the process ID
# for use of mpd --kill and some init scripts. This setting is disabled by
# default and the pid file will not be stored.
pid_file "/var/run/mpd/mpd.pid"
# This setting sets the location of the file which contains information about
# most variables to get MPD back into the same general shape it was in before
# it was brought down. This setting is disabled by default and the server
# state will be reset on server start up.
state_file "/var/lib/mpd/mpdstate"
# The location of the sticker database. This is a database which
# manages dynamic information attached to songs.
#sticker_file "~/.mpd/sticker.sql"
# General music daemon options ################################################
# This setting specifies the user that MPD will run as. MPD should never run as
# root and you may use this setting to make MPD change its user ID after
# initialization. This setting is disabled by default and MPD is run as the
# current user.
user "adriaan"
# This setting specifies the group that MPD will run as. If not specified
# primary group of user specified with "user" setting will be used (if set).
# This is useful if MPD needs to be a member of group such as "audio" to
# have permission to use sound card.
group "users"
# This setting sets the address for the daemon to listen on. Careful attention
# should be paid if this is assigned to anything other then the default, any.
# This setting can deny access to control of the daemon.
# For network
#bind_to_address "any"
# And for Unix Socket
#bind_to_address "~/.mpd/socket"
# This setting is the TCP port that is desired for the daemon to get assigned
# to.
#port "6600"
# This setting controls the type of information which is logged. Available
# setting arguments are "default", "secure" or "verbose". The "verbose" setting
# argument is recommended for troubleshooting, though can quickly stretch
# available resources on limited hardware storage.
#log_level "default"
# If you have a problem with your MP3s ending abruptly it is recommended that
# you set this argument to "no" to attempt to fix the problem. If this solves
# the problem, it is highly recommended to fix the MP3 files with vbrfix
# (available from <http://www.willwap.co.uk/Programs/vbrfix.php>), at which
# point gapless MP3 playback can be enabled.
#gapless_mp3_playback "yes"
# This setting enables MPD to create playlists in a format usable by other
# music players.
#save_absolute_paths_in_playlists "no"
# This setting defines a list of tag types that will be extracted during the
# audio file discovery process. Optionally, 'comment' can be added to this
# list.
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
# This setting enables automatic update of MPD's database when files in
# music_directory are changed.
auto_update "yes"
# Limit the depth of the directories being watched, 0 means only watch
# the music directory itself. There is no limit by default.
#auto_update_depth "3"
# Symbolic link behavior ######################################################
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links outside of the configured music_directory.
#follow_outside_symlinks "yes"
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links inside of the configured music_directory.
#follow_inside_symlinks "yes"
# Zeroconf / Avahi Service Discovery ##########################################
# If this setting is set to "yes", service information will be published with
# Zeroconf / Avahi.
#zeroconf_enabled "yes"
# The argument to this setting will be the Zeroconf / Avahi unique name for
# this MPD server on the network.
#zeroconf_name "Music Player"
# Permissions #################################################################
# If this setting is set, MPD will require password authorization. The password
# can setting can be specified multiple times for different password profiles.
#password "password@read,add,control,admin"
# This setting specifies the permissions a user has who has not yet logged in.
#default_permissions "read,add,control,admin"
# Input #######################################################################
input {
plugin "curl"
# proxy "proxy.isp.com:8080"
# proxy_user "user"
# proxy_password "password"
# Audio Output ################################################################
# MPD supports various audio output types, as well as playing through multiple
# audio outputs at the same time, through multiple audio_output settings
# blocks. Setting this block is optional, though the server will only attempt
# autodetection for one sound card.
# See <http://mpd.wikia.com/wiki/Configuration#Audio_Outputs> for examples of
# other audio outputs.
# An example of an ALSA output:
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:0,0" # optional
# format "44100:16:2" # optional
# mixer_type "hardware" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
#audio_output {
# type "alsa"
# name "Sound Card"
# options "dev=dmixer"
# device "plug:dmix"
# An example of an OSS output:
#audio_output {
# type "oss"
# name "My OSS Device"
## device "/dev/dsp" # optional
## format "44100:16:2" # optional
## mixer_type "hardware" # optional
## mixer_device "/dev/mixer" # optional
## mixer_control "PCM" # optional
# An example of a shout output (for streaming to Icecast):
#audio_output {
# type "shout"
# encoding "ogg" # optional
# name "My Shout Stream"
# host "localhost"
# port "8000"
# mount "/mpd.ogg"
# password "hackme"
# quality "5.0"
# bitrate "128"
# format "44100:16:1"
## protocol "icecast2" # optional
## user "source" # optional
## description "My Stream Description" # optional
## genre "jazz" # optional
## public "no" # optional
## timeout "2" # optional
## mixer_type "software" # optional
# An example of a recorder output:
#audio_output {
# type "recorder"
# name "My recorder"
# encoder "vorbis" # optional, vorbis or lame
# path "/var/lib/mpd/recorder/mpd.ogg"
## quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
# An example of a httpd output (built-in HTTP streaming server):
#audio_output {
# type "httpd"
# name "My HTTP Stream"
# encoder "vorbis" # optional, vorbis or lame
# port "8000"
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
## quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
# max_clients "0" # optional 0=no limit
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
#audio_output {
# type "pulse"
# name "My Pulse Output"
## server "remote_server" # optional
## sink "remote_server_sink" # optional
## Example "pipe" output:
#audio_output {
# type "pipe"
# name "my pipe"
# command "aplay -f cd 2>/dev/null"
## Or if you're want to use AudioCompress
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
## Or to send raw PCM stream through PCM:
# command "nc example.org 8765"
# format "44100:16:2"
## An example of a null output (for no audio output):
#audio_output {
# type "null"
# name "My Null Output"
# mixer_type "none" # optional
# This setting will change all decoded audio to be converted to the specified
# format before being passed to the audio outputs. By default, this setting is
# disabled.
#audio_output_format "44100:16:2"
# If MPD has been compiled with libsamplerate support, this setting specifies
# the sample rate converter to use. Possible values can be found in the
# mpd.conf man page or the libsamplerate documentation. By default, this is
# setting is disabled.
#samplerate_converter "Fastest Sinc Interpolator"
# Normalization automatic volume adjustments ##################################
# This setting specifies the type of ReplayGain to use. This setting can have
# the argument "off", "album" or "track". See <http://www.replaygain.org>
# for more details. This setting is off by default.
#replaygain "album"
# This setting sets the pre-amp used for files that have ReplayGain tags. By
# default this setting is disabled.
#replaygain_preamp "0"
# This setting enables on-the-fly normalization volume adjustment. This will
# result in the volume of all playing audio to be adjusted so the output has
# equal "loudness". This setting is disabled by default.
#volume_normalization "no"
# MPD Internal Buffering ######################################################
# This setting adjusts the size of internal decoded audio buffering. Changing
# this may have undesired effects. Don't change this if you don't know what you
# are doing.
#audio_buffer_size "2048"
# This setting controls the percentage of the buffer which is filled before
# beginning to play. Increasing this reduces the chance of audio file skipping,
# at the cost of increased time prior to audio playback.
#buffer_before_play "10%"
# Resource Limitations ########################################################
# These settings are various limitations to prevent MPD from using too many
# resources. Generally, these settings should be minimized to prevent security
# risks, depending on the operating resources.
#connection_timeout "60"
#max_connections "10"
#max_playlist_length "16384"
#max_command_list_size "2048"
#max_output_buffer_size "8192"
# Character Encoding ##########################################################
# If file or directory names do not display correctly for your locale then you
# may need to modify this setting.
filesystem_charset "UTF-8"
# This setting controls the encoding that ID3v1 tags should be converted from.
#id3v1_encoding "ISO-8859-1"
# SIDPlay decoder #############################################################
# songlength_database:
# Location of your songlengths file, as distributed with the HVSC.
# The sidplay plugin checks this for matching MD5 fingerprints.
# See http://www.c64.org/HVSC/DOCUMENTS/Songlengths.faq
# default_songlength:
# This is the default playing time in seconds for songs not in the
# songlength database, or in case you're not using a database.
# A value of 0 means play indefinitely.
# filter:
# Turns the SID filter emulation on or off.
#decoder {
# plugin "sidplay"
# songlength_database "/media/C64Music/DOCUMENTS/Songlengths.txt"
# default_songlength "120"
# filter "true"milso wrote:
type "alsa"
name "equal"
device "default"
format "44100:16:2" # optional
mixer_device "default" # optional
mixer_control "PCM" # optional
mixer_index "0" # optional
I have mine set to plug:plugequal as I use an equalizer with alsa, but when I set it to default it works fine, try that.
That didn't work out.
Mr.Elendig wrote:Tell mpd to be more verbose. And check that mplayer -ao alsa whatever works.
Here's the output of mpd -v
listen: bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded)
path: path_set_fs_charset: fs charset is: UTF-8
database: reading DB
disabling the last.fm playlist plugin because account is not configured
daemon: opening pid file
daemon: daemonized!
daemon: writing pid file
Doesn't contain anything unusual.
EDIT: oh, and mplayer -ao alsa works fine.
Last edited by arthd (2011-02-09 15:14:09) -
Only Hotmail running very slowly and errors in loading correct page
recently Hotmail havs taken a long time to load pages. Plus when a email is selected page flickers and wrong page displayed.
this is not happening with Yahoo mail. Sometimes error message such as "not responding" or "cannot complete". But only when trying to get hotmailHi Larry,
Thankyou for your reply, this is a partial answer
This server has been running for about 3 years now,
The faults started after I did an service pack update for sharepoint. I then did the manual update but the C drive then started to run very slowly and was giving disk size too low errors so I moved the SUS to a different drive but this hasnt helped. It is
still running painfully slow. Ran SBS BPA and found no faults. However ran Exchange BPA and did find faults which I have now fixed. Still have large number of errors
Brian -
At the very end of the download it says error downloading, tap to retry. On just about any tv show or movie.
If your ext HD boot volume is running Lion, just use something like Carbon Copy Cloner to clone it to the internal. Clean installs are usually just a waste of time.
-
I have several classes under a certain package. In three of
those classes I have some public vars of type Number. However, in
one of the methods in a rather complex class I declare a local
varable of type number and it has a complile error.
So I tried to declare a member of the class of type Number
with the same result. Why would this class not be able to find the
Number class when others in the same package not have this issue?
Very confusingYour JVM crashed when you compile your file. This is unusual.
If your can reproduce this with a small test-case, I suggest you
filke a bug here: http://bugs.sun.com/services/bugreport/index.jsp
--Alexis -
Hi guys..facing problem in error fixing.in bdc...prgm is in ECC 6.0..
prgm is
*& Report ZCJI_CNV_POSTGOODSRECEIPT_ALT1
REPORT ZCJI_CNV_POSTGOODSRECEIPT_ALT1.
*REPORT ZCJI_CNV_POSTGOODSRECEIPT_ALT NO STANDARD PAGE HEADING
LINE-SIZE 255.
*Program: ZCJI_CNV_POSTGOODSRECEIPT_ALT *
*Function: This program is used to carry out GR transaction MB0A for
CJI import logistics purchase orders. The objective is to
choose only those purchase orders for which billing has been
carried out already. Once GR document is posted, the status
of delivery document items is also updated.
DATE AUTHOR SCR # CHANGE DESCRIPTION
11/04/03 Ohm Reddy BRD # 90 Initial version
DEVK928402
02/25/04 Ohm Reddy In BDC session for posting Goods
DEVK929329 Receipt document, update document
date with system local date
(SYST-DATLO) rather than with
system date(SYST-DATUM)
06/23/04 Ohm Reddy Post GR only when sales order
DEVK931359 item SKU and PO item SKU matches
03/21/05 Alex Mutia 13829/DEVK934135 *
Phase II modifications: *
1. Added criteria in the selection screen; *
2. Modified record selection logic; *
3. Added fields in the Control Report; *
04/08/05 Alex Mutia 13829/DEVK934262 *
Fixed bug in processing MFRGR field; *
04/13/05 Alex Mutia 13829/DEVK934283 *
1.Fixed bug in assigning error record pointers*
to part-success part-error POs; *
2.Added SO and SO line item numbers in report;*
3.Compressed report to fit in 255 columns; *
04/27/05 Alex Mutia 13829/DEVK934384 *
1.Material documents retrieval changed from *
MSEG to EKBE for performance. *
2.Display empty ALV columns when no records *
were selected for processing; *
TYPE-POOLS: SLIS.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: G_LAYOUT_ALV_SPEC TYPE SLIS_LAYOUT_ALV.
*INCLUDE ZMMCJI_CNV_POSTGR_BDC2.
INCLUDE ZCJI_CNV_PGR_DATA_ALT.
$--"DEVK934135 Begin;-$
INITIALIZATION. "DEVK934135
PERFORM INITIALIZE_VENDOR. "DEVK934135
PERFORM INITIALIZE_PRICE. "DEVK934135
$--"DEVK934135 End;---$
START-OF-SELECTION.
IF P_LIFNR IS INITIAL. "DEVK934135
PERFORM INITIALIZE_VENDOR. "DEVK934135
ENDIF. "DEVK934135
IF P_NETPR IS INITIAL. "DEVK934135
PERFORM INITIALIZE_PRICE. "DEVK934135
ENDIF. "DEVK934135
PERFORM 100_SELECT_DATA.
END-OF-SELECTION.
CHECK: g_return_code IS INITIAL. "DEVK934384
IF NOT itab[] IS INITIAL. "DEVK934384
IF G_RETURN_CODE IS INITIAL AND "DEVK934384
NOT ITAB[] IS INITIAL. "DEVK934384
PERFORM 200_PROCESS_DATA.
PERFORM 300_POST_DOCUMENTS.
PERFORM 399_RETRIEVE_DOCUMENTS.
PERFORM REORG_ITAB.
PERFORM BUILD_HEADER_CATALOG.
PERFORM FIELDCAT_INIT USING GT_FIELDCAT[].
SY_COPY = SYST.
PERFORM SHOW_TRANSACTION_ERRORS.
ELSE. "DEVK934384
PERFORM SHOW_EMPTY_LIST. "DEVK934384
ENDIF.
*& Form SELECT_DATA
FORM 100_SELECT_DATA.
PERFORM 110_SELECT_OPEN_PO_QTY.
CHECK: G_RETURN_CODE IS INITIAL.
PERFORM 120_SELECT_PO_BILLED_QTY.
ENDFORM. " 100_SELECT_DATA
*& Form 110_SELECT_OPEN_PO_QTY
FORM 110_SELECT_OPEN_PO_QTY.
$--"DEVK934135 Begin;-$
SELECT T1~VGBEL
T1~VGPOS
T1~VBELN
T1~POSNR
T1~MATNR
T1~LFIMG
T1~MFRGR
T2~LIFEX
T2~LFDAT
FROM LIPS AS T1
INNER JOIN LIKP AS T2
ON T1MANDT EQ T2MANDT AND
T1VBELN EQ T2VBELN
APPENDING CORRESPONDING FIELDS OF TABLE ITAB_LIPS
WHERE T1~MANDT EQ SY-MANDT "client is system client
AND T1~VBELN IN S_VBELN "billing doc in criteria
AND T1~VGBEL IN S_EBELN "po reference in criteria
AND T1~PSTYV EQ 'ELN' "billing item category
AND T1~WERKS EQ 'JDC1' "plant
AND T1~MFRGR NE 'C' "material freight group
AND T2~LIFNR EQ P_LIFNR. "vendor is param vendor
LOOP AT ITAB_LIPS.
ITAB_LIPS-EBELN = ITAB_LIPS-VGBEL.
ITAB_LIPS-EBELP = ITAB_LIPS-VGPOS.
ITAB_LIPS-CHARG = ITAB_LIPS-LIFEX.
ITAB_LIPS-OLDMFRGR
= ITAB_LIPS-MFRGR.
MODIFY ITAB_LIPS.
ENDLOOP.
IF ITAB_LIPS[] IS INITIAL.
MESSAGE i032(zm) WITH text-m11. "DEVK934384
G_RETURN_CODE = 'X'.
EXIT.
ENDIF.
SELECT T1~EBELN
T1~EBELP
T1~LICHA
T2~MATNR
T2~MENGE
T2~LOEKZ
T2~ELIKZ
T2~NETPR
T3~IHREZ
FROM EKET AS T1
INNER JOIN EKPO AS T2
ON T1MANDT EQ T2MANDT AND
T1EBELN EQ T2EBELN AND
T1EBELP EQ T2EBELP
INNER JOIN EKKO AS T3
ON T1MANDT EQ T3MANDT AND
T1EBELN EQ T3EBELN
APPENDING CORRESPONDING FIELDS OF TABLE ITAB
FOR ALL ENTRIES IN ITAB_LIPS
WHERE T1~MANDT EQ SY-MANDT "client is system client
AND T1~EBELN EQ ITAB_LIPS-EBELN "po# matches w/ billing
AND T3~BSART IN ('YT', 'YN'). "po type
IF ITAB[] IS INITIAL.
MESSAGE i032(zm) WITH text-m11. "DEVK934384
G_RETURN_CODE = 'X'.
EXIT.
ENDIF.
$--"DEVK934135 End;---$
delete any duplicate entries in itab table
SORT ITAB BY EBELN EBELP.
DELETE ADJACENT DUPLICATES FROM ITAB COMPARING EBELN EBELP.
LOOP AT ITAB.
ITAB-RECID = SY-TABIX.
IF NOT ITAB-IHREZ IS INITIAL.
WHILE ITAB-IHREZ+0(1) EQ ' '.
SHIFT ITAB-IHREZ.
ENDWHILE.
WHILE ITAB-IHREZ+9(1) EQ ' '.
SHIFT ITAB-IHREZ RIGHT.
ITAB-IHREZ+0(1) = '0'.
ENDWHILE.
ENDIF.
MODIFY ITAB.
ENDLOOP.
delete ITAB_LIPS entries that are not there in ITAB
LOOP AT ITAB_LIPS.
SY_COPY-TABIX = SY-TABIX.
CLEAR ITAB.
READ TABLE ITAB WITH KEY EBELN = ITAB_LIPS-EBELN
EBELP = ITAB_LIPS-EBELP BINARY SEARCH.
SY_COPY-INDEX = SY-TABIX.
IF SY-SUBRC NE 0.
DELETE ITAB_LIPS.
ELSE.
ITAB_LIPS-IHREZ = ITAB-IHREZ.
MODIFY ITAB_LIPS INDEX SY_COPY-TABIX.
ITAB-MFRGR = ITAB_LIPS-MFRGR.
ITAB-LIFEX = ITAB_LIPS-LIFEX.
ITAB-OLDMFRGR
= ITAB_LIPS-OLDMFRGR.
MODIFY ITAB INDEX SY_COPY-INDEX.
ENDIF.
ENDLOOP.
select the goods receipts documents created for the above deliveries
SELECT EBELN EBELP BELNR GJAHR
INTO TABLE ITAB_EKBE FROM EKBE
FOR ALL ENTRIES IN ITAB_LIPS
WHERE EBELN = ITAB_LIPS-EBELN
AND EBELP = ITAB_LIPS-EBELP.
select Goods receipt data from MSEG table for the above deliveries
IF NOT ITAB_EKBE[] IS INITIAL.
SELECT EBELN EBELP CHARG BWART MENGE MBLNR MJAHR ZEILE
INTO TABLE ITAB_MSEG FROM MSEG
FOR ALL ENTRIES IN ITAB_EKBE
WHERE MBLNR = ITAB_EKBE-BELNR
AND MJAHR = ITAB_EKBE-GJAHR.
ENDIF.
SORT ITAB_MSEG BY EBELN EBELP CHARG.
calculate the GR qty eligible to be posted
SORT ITAB_LIPS BY EBELN EBELP.
LOOP AT ITAB_LIPS.
ITAB_LIPS-POSTQTY = ITAB_LIPS-LFIMG.
CLEAR ITAB_MSEG.
LOOP AT ITAB_MSEG WHERE EBELN = ITAB_LIPS-EBELN
AND EBELP = ITAB_LIPS-EBELP
AND CHARG = ITAB_LIPS-CHARG.
IF ITAB_MSEG-BWART = '101'.
ITAB_LIPS-POSTQTY = ITAB_LIPS-POSTQTY - ITAB_MSEG-MENGE.
ELSEIF ITAB_MSEG-BWART = '102'.
ITAB_LIPS-POSTQTY = ITAB_LIPS-POSTQTY + ITAB_MSEG-MENGE.
ENDIF.
ENDLOOP.
MODIFY ITAB_LIPS.
CLEAR ITAB_LIPS.
ENDLOOP.
LOOP AT ITAB.
ITAB-RECID = SY-TABIX.
MODIFY ITAB.
LOOP AT ITAB_LIPS WHERE EBELN EQ ITAB-EBELN
AND EBELP EQ ITAB-EBELP.
ITAB_LIPS-RECID = ITAB-RECID.
MODIFY ITAB_LIPS.
ENDLOOP.
ENDLOOP.
free the memory of unnecessary internal tables
$--"DEVK934135 Begin;-$
CLEAR: ITAB_EKBE.
FREE: ITAB_EKBE.
$--"DEVK934135 End;---$
ENDFORM. " 110_SELECT_OPEN_PO_QTY
*& Form 120_SELECT_PO_BILLED_QTY
FORM 120_SELECT_PO_BILLED_QTY.
$--"DEVK934135 Begin;-$
SELECT T1~VBELN
T1~POSNR
T1~FKIMG
T1~AUBEL
T1~AUPOS
APPENDING CORRESPONDING FIELDS OF TABLE ITAB_VBRP
FROM VBRP AS T1
INNER JOIN VBRK AS T2
ON T1MANDT EQ T2MANDT AND
T1VBELN EQ T2VBELN
FOR ALL ENTRIES IN ITAB
WHERE T1~MANDT EQ SY-MANDT "client is system client
AND T1~VBELN EQ ITAB-IHREZ+0(10) "billing doc = your ref.
AND T2~FKSTO EQ ' '. "status NOT cancelled
Match ITAB-IHREZ <-> ITAB_VBRP-VBELN...
ITAB-LICHA <-> ITAB_VBRP-POSNR...
LOOP AT ITAB.
SY_COPY-TABIX = SY-TABIX.
Check your reference (IHREZ) field;
IF ITAB-IHREZ IS INITIAL. "your-ref blank
ITAB-ERRFA = 'X'.
GT_ERROR-RECID = ITAB-RECID.
GT_ERROR-ERRTX = TEXT-E0A.
APPEND GT_ERROR.
ELSE. "your-ref NOT blank
IF ITAB-IHREZ CO ' 0123456789'. "your-ref numeric
ENDIF. "your-ref numeric
IF SY-FDPOS NE 12. "your-ref NOT numeric
ITAB-ERRFA = 'X'.
GT_ERROR-RECID = ITAB-RECID.
GT_ERROR-ERRTX = TEXT-E0A.
APPEND GT_ERROR.
ELSE. "your-ref NOT numeric
Check PO line item (LICHA) field;
IF ITAB-LICHA IS INITIAL. "line item blank
ITAB-ERRFA = 'X'.
GT_ERROR-RECID = ITAB-RECID.
GT_ERROR-ERRTX = TEXT-E01.
APPEND GT_ERROR.
ELSE. "line item NOT blank
IF ITAB-LICHA CO ' 0123456789'. "line item numeric
ENDIF. "line item numeric
IF SY-FDPOS NE 15. "line item NOT numeric
ITAB-ERRFA = 'X'.
GT_ERROR-RECID = ITAB-RECID.
GT_ERROR-ERRTX = TEXT-E01.
APPEND GT_ERROR.
ELSE. "line item NOT numeric
SY_COPY-SUBRC = 4.
READ TABLE ITAB_VBRP
WITH KEY VBELN = ITAB-IHREZ+0(10)
POSNR = ITAB-LICHA+0(6) BINARY SEARCH.
SY_COPY-SUBRC = SY-SUBRC.
IF SY_COPY-SUBRC NE 0.
ITAB-ERRFA = 'X'.
GT_ERROR-RECID = ITAB-RECID.
GT_ERROR-ERRTX = TEXT-E01.
APPEND GT_ERROR.
ELSE. "DEVK934283
ITAB-AUBEL = ITAB_VBRP-AUBEL. "DEVK934283
ITAB-AUPOS = ITAB_VBRP-AUPOS. "DEVK934283
ENDIF.
ENDIF. "line item NOT numeric
ENDIF. "line item blank
ENDIF. "your-ref NOT numeric
ENDIF. "your-ref blank
Check ID - LIFEX;
IF ITAB-LIFEX EQ ' '. "LIFEX is blank
ITAB-ERRFB = 'X'.
GT_ERROR-RECID = ITAB-RECID.
GT_ERROR-ERRTX = TEXT-ERB.
APPEND GT_ERROR.
ELSE. "LIFEX is NOT blank
Check ID - MFRGR;
IF ITAB-MFRGR NE 'G'. "MFRGR NOT G
ITAB-ERRFC = 'X'.
GT_ERROR-RECID = ITAB-RECID.
GT_ERROR-ERRTX = TEXT-ERC.
APPEND GT_ERROR.
ENDIF. "MFRGR NOT G
ENDIF. "LIFEX is blank
Check PO - Deletion indicator;
IF ITAB-LOEKZ NE ' '. "LOEKZ NOT blank
ITAB-ERRFD = 'X'.
GT_ERROR-RECID = ITAB-RECID.
GT_ERROR-ERRTX = TEXT-ERD.
APPEND GT_ERROR.
ENDIF. "LOEKZ NOT blank
Check PO - Delivery completed flag;
IF ITAB-ELIKZ NE ' '. "ELIKZ NOT blank
ITAB-ERRFE = 'X'.
GT_ERROR-RECID = ITAB-RECID.
GT_ERROR-ERRTX = TEXT-ERE.
APPEND GT_ERROR.
ENDIF. "ELIKZ NOT blank
Check PO - Net price;
IF ITAB-NETPR LT P_NETPR. "price < parameter
ITAB-ERRFF = 'X'.
GT_ERROR-RECID = ITAB-RECID.
CONCATENATE TEXT-ERF
G_NETPR
TEXT-USD
INTO GT_ERROR-ERRTX SEPARATED BY SPACE.
APPEND GT_ERROR.
ENDIF. "ELIKZ NOT blank
IF ITAB-AUPOS EQ '000000'.
CLEAR: ITAB-AUPOS.
ENDIF.
MODIFY ITAB INDEX SY_COPY-TABIX.
ENDLOOP.
LOOP AT ITAB. "DEVK934283
READ TABLE ITAB_LIPS "DEVK934283
WITH KEY VGBEL = ITAB-EBELN "DEVK934283
VGPOS = ITAB-EBELP "DEVK934283
BINARY SEARCH. "DEVK934283
SY_COPY-TABIX = SY-TABIX. "DEVK934283
IF SY-SUBRC EQ 0. "DEVK934283
ITAB_LIPS-AUBEL = ITAB-AUBEL. "DEVK934283
ITAB_LIPS-AUPOS = ITAB-AUPOS. "DEVK934283
MODIFY ITAB_LIPS INDEX SY_COPY-TABIX. "DEVK934283
ENDIF. "DEVK934283
ENDLOOP. "DEVK934283
Transfer errors from ITAB to ITAB_LIPS;
LOOP AT ITAB WHERE ERRFA EQ 'X'
OR ERRFB EQ 'X'
OR ERRFC EQ 'X'
OR ERRFD EQ 'X'
OR ERRFE EQ 'X'
OR ERRFF EQ 'X'.
READ TABLE ITAB_LIPS
WITH KEY VGBEL = ITAB-EBELN
VGPOS = ITAB-EBELP BINARY SEARCH.
SY_COPY-TABIX = SY-TABIX.
IF SY-SUBRC EQ 0.
ITAB_LIPS-ERRFA = ITAB-ERRFA.
ITAB_LIPS-ERRFB = ITAB-ERRFB.
ITAB_LIPS-ERRFC = ITAB-ERRFC.
ITAB_LIPS-ERRFD = ITAB-ERRFD.
ITAB_LIPS-ERRFE = ITAB-ERRFE.
ITAB_LIPS-ERRFF = ITAB-ERRFF.
ITAB_LIPS-NEWMFRGR = 'E'.
MODIFY ITAB_LIPS INDEX SY_COPY-TABIX.
ENDIF.
ENDLOOP.
$--"DEVK934135 End;---$
ENDFORM. " 120_SELECT_PO_BILLED_QTY
*& Form 200_PROCESS_DATA
FORM 200_PROCESS_DATA.
PERFORM 210_CONSOLIDATE_DATA.
PERFORM 220_PROCESS_DATA.
ENDFORM. " 200_PROCESS_DATA
*& Form 210_consolidate_data
FORM 210_CONSOLIDATE_DATA.
Get the PO item open qty and billed qty into one table
LOOP AT ITAB.
CLEAR ITAB_LIPS.
LOOP AT ITAB_LIPS WHERE EBELN = ITAB-EBELN
AND EBELP = ITAB-EBELP.
ITAB-IDQTY = ITAB-IDQTY + ITAB_LIPS-POSTQTY. "inbound delv qty
ENDLOOP.
CLEAR ITAB_VBRP.
LOOP AT ITAB_VBRP WHERE VBELN = ITAB-IHREZ
AND POSNR = ITAB-LICHA.
ITAB-FKIMG = ITAB-FKIMG + ITAB_VBRP-FKIMG. "PO item billed qty
ENDLOOP.
CLEAR ITAB_MSEG.
LOOP AT ITAB_MSEG WHERE EBELN = ITAB-EBELN
AND EBELP = ITAB-EBELP.
IF ITAB_MSEG-BWART = '101'.
ITAB-GRQTY = ITAB-GRQTY + ITAB_MSEG-MENGE. "PO item GR qty
ELSEIF ITAB_MSEG-BWART = '102'.
ITAB-GRQTY = ITAB-GRQTY - ITAB_MSEG-MENGE. "PO item GR qty
ELSEIF ITAB_MSEG-BWART = '122'. "DEVK934135
ITAB-GRQTY = ITAB-GRQTY - ITAB_MSEG-MENGE. "PO item GR qty
ENDIF.
ENDLOOP.
ITAB-RCVQTY = ITAB-FKIMG - ITAB-GRQTY. "qty billed but not received
calculate the quantity to be processed for which GRs are to be posted
IF ITAB-RCVQTY > 0 AND ITAB-RCVQTY > ITAB-IDQTY.
ITAB-PROCQTY = ITAB-IDQTY.
ELSEIF ITAB-RCVQTY > 0 AND ITAB-RCVQTY < ITAB-IDQTY.
ITAB-PROCQTY = ITAB-RCVQTY.
ELSEIF ITAB-RCVQTY > 0 AND ITAB-RCVQTY = ITAB-IDQTY.
ITAB-PROCQTY = ITAB-IDQTY.
ENDIF.
MODIFY ITAB.
CLEAR ITAB.
ENDLOOP.
free the memory of unnecessary internal tables
$--"DEVK934135 Begin;-$
CLEAR: ITAB_MSEG.
FREE: ITAB_MSEG.
$--"DEVK934135 End;---$
ENDFORM. " 210_consolidate_data
*& Form 220_PROCESS_DATA
FORM 220_PROCESS_DATA.
DATA: L0_FISCAL_PERIOD LIKE BAPI0002_4-FISCAL_PERIOD,
L0_FISCAL_YEAR LIKE BAPI0002_4-FISCAL_YEAR,
L0_RETURN LIKE BAPIRETURN1,
L1_FISCAL_PERIOD LIKE BAPI0002_4-FISCAL_PERIOD,
L1_FISCAL_YEAR LIKE BAPI0002_4-FISCAL_YEAR,
L1_RETURN LIKE BAPIRETURN1.
SORT ITAB_LIPS BY VGBEL VGPOS EBELN EBELP
LFDAT DESCENDING POSNR ASCENDING.
SORT ITAB BY EBELN EBELP.
Calculate the GR quanities to be posted for all inbound deliveries
LOOP AT ITAB_LIPS.
AT NEW EBELP.
CLEAR ITAB.
CLEAR V_RCVQTY.
READ TABLE ITAB WITH KEY EBELN = ITAB_LIPS-EBELN
EBELP = ITAB_LIPS-EBELP BINARY SEARCH.
V_RCVQTY = ITAB-RCVQTY.
ENDAT.
IF ITAB-PROCQTY GT 0.
IF ITAB_LIPS-POSTQTY GT ITAB-PROCQTY.
ITAB_LIPS-PROCQTY = ITAB-PROCQTY.
ITAB_LIPS-NEWMFRGR = 'B'.
ITAB-PROCQTY = 0.
ELSEIF ITAB_LIPS-POSTQTY LT ITAB-PROCQTY.
ITAB_LIPS-PROCQTY = ITAB_LIPS-POSTQTY.
ITAB_LIPS-NEWMFRGR = 'C'.
ITAB-PROCQTY = ITAB-PROCQTY - ITAB_LIPS-POSTQTY.
ELSEIF ITAB_LIPS-POSTQTY EQ ITAB-PROCQTY.
ITAB_LIPS-PROCQTY = ITAB_LIPS-POSTQTY.
ITAB_LIPS-NEWMFRGR = 'C'.
ITAB-PROCQTY = 0.
ENDIF.
Compare the Inbound delivery processing quantity with the pending
billing quantity to write it in the report log
IF ITAB_LIPS-POSTQTY LT V_RCVQTY.
ITAB_LIPS-GRIND = 'D'. "GR will be created for ID qty
V_RCVQTY = V_RCVQTY - ITAB_LIPS-POSTQTY.
ELSEIF ITAB_LIPS-POSTQTY GT V_RCVQTY.
ITAB_LIPS-GRIND = 'B'. "GR will be created for Billied qty
V_RCVQTY = 0.
ELSEIF ITAB_LIPS-POSTQTY EQ V_RCVQTY.
ITAB_LIPS-GRIND = 'S'. "Billed qty is equal to ID qty
V_RCVQTY = 0.
ENDIF.
ELSE.
Decide why this inbound delivery could not have GR quantity -
excess GR quantity or unavailable Billing quantity
IF ITAB-RCVQTY LT ITAB-IDQTY.
ITAB_LIPS-GRIND = 'C'. "GR not created - Lack of Billed qty
ENDIF.
IF ITAB-RCVQTY LT 0.
ITAB_LIPS-GRIND = 'A'. "GR not created - GR qty > Bill qty
ENDIF.
ENDIF.
MODIFY ITAB_LIPS.
CLEAR ITAB_LIPS.
ENDLOOP.
$--"DEVK934135-Begin;-$
LOOP AT ITAB_LIPS.
AT NEW EBELP.
CLEAR ITAB.
CLEAR V_RCVQTY.
READ TABLE ITAB WITH KEY EBELN = ITAB_LIPS-EBELN
EBELP = ITAB_LIPS-EBELP BINARY SEARCH.
V_RCVQTY = ITAB-FKIMG - ITAB-GRQTY.
ENDAT.
IF ITAB_LIPS-ERRFA IS INITIAL.
IF V_RCVQTY EQ 0.
ITAB_LIPS-ERRF1 = 'X'.
ITAB_LIPS-NEWMFRGR = 'E'.
GT_ERROR-RECID = ITAB-RECID.
GT_ERROR-ERRTX = TEXT-R01.
APPEND GT_ERROR.
ELSEIF V_RCVQTY LT 0.
ITAB_LIPS-ERRF2 = 'X'.
ITAB_LIPS-NEWMFRGR = 'E'.
GT_ERROR-RECID = ITAB-RECID.
GT_ERROR-ERRTX = TEXT-R02.
APPEND GT_ERROR.
ELSEIF V_RCVQTY GT 0.
IF V_RCVQTY EQ ITAB_LIPS-LFIMG.
ITAB_LIPS-ERRF3 = 'X'.
ITAB_LIPS-NEWMFRGR = 'C'.
ELSEIF V_RCVQTY GT ITAB_LIPS-LFIMG.
ITAB_LIPS-ERRF4 = 'X'.
ITAB_LIPS-NEWMFRGR = 'C'.
ITAB_LIPS-PROCQTY = ITAB_LIPS-LFIMG.
GT_ERROR-RECID = ITAB-RECID.
GT_ERROR-ERRTX = TEXT-R04.
APPEND GT_ERROR.
ELSEIF V_RCVQTY LT ITAB_LIPS-LFIMG.
ITAB_LIPS-ERRF5 = 'X'.
ITAB_LIPS-NEWMFRGR = 'E'.
GT_ERROR-RECID = ITAB-RECID.
GT_ERROR-ERRTX = TEXT-R05.
APPEND GT_ERROR.
ENDIF.
ENDIF.
ENDIF.
CLEAR: ITAB_LIPS-BLDAT.
READ TABLE ITAB WITH KEY EBELN = ITAB_LIPS-VGBEL
EBELP = ITAB_LIPS-VGPOS BINARY SEARCH.
SELECT SINGLE FKDAT
FROM VBRK
INTO (ITAB_LIPS-BLDAT)
WHERE VBELN EQ ITAB-IHREZ+0(10).
CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'
EXPORTING
COMPANYCODEID = 'C800'
POSTING_DATE = ITAB_LIPS-BLDAT
IMPORTING
FISCAL_YEAR = L0_FISCAL_YEAR
FISCAL_PERIOD = L0_FISCAL_PERIOD
RETURN = L0_RETURN.
CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'
EXPORTING
COMPANYCODEID = 'C800'
POSTING_DATE = SY-DATLO
IMPORTING
FISCAL_YEAR = L1_FISCAL_YEAR
FISCAL_PERIOD = L1_FISCAL_PERIOD
RETURN = L1_RETURN.
IF L0_FISCAL_YEAR EQ L1_FISCAL_YEAR AND
L0_FISCAL_PERIOD EQ L1_FISCAL_PERIOD.
ITAB_LIPS-BUDAT = ITAB_LIPS-BLDAT.
ELSE.
ITAB_LIPS-BUDAT = SY-DATLO.
ENDIF.
MODIFY ITAB_LIPS.
CLEAR ITAB_LIPS.
ENDLOOP.
$--"DEVK934135-End;---$
collect all the inbound deliveries for which goods receipt are to be
made / material freight status are to be updated
LOOP AT ITAB_LIPS WHERE ERRFA IS INITIAL "DEVK934135
AND ERRFB IS INITIAL "DEVK934135
AND ERRFC IS INITIAL "DEVK934135
AND ERRFD IS INITIAL "DEVK934135
AND ERRFE IS INITIAL "DEVK934135
AND ERRFF IS INITIAL "DEVK934135
AND ERRF1 IS INITIAL "DEVK934135
AND ERRF2 IS INITIAL "DEVK934135
AND ERRF5 IS INITIAL. "DEVK934135
IF ITAB_LIPS-PROCQTY GT 0 AND ITAB_LIPS-LFIMG NE 0.
ITAB_LIPS_G-VBELN = ITAB_LIPS-VBELN.
ITAB_LIPS_G-BLDAT = ITAB_LIPS-BLDAT. "DEVK934135
ITAB_LIPS_G-BUDAT = ITAB_LIPS-BUDAT. "DEVK934135
ITAB_LIPS_G-IHREZ = ITAB_LIPS-IHREZ. "DEVK934135
APPEND ITAB_LIPS_G.
ENDIF.
ENDLOOP.
SORT ITAB_LIPS_G BY VBELN.
DELETE ADJACENT DUPLICATES FROM ITAB_LIPS_G.
LOOP AT ITAB_LIPS WHERE NOT ERRFA IS INITIAL "DEVK934135
OR NOT ERRFB IS INITIAL "DEVK934135
OR NOT ERRFC IS INITIAL "DEVK934135
OR NOT ERRFD IS INITIAL "DEVK934135
OR NOT ERRFE IS INITIAL "DEVK934135
OR NOT ERRFF IS INITIAL "DEVK934135
OR NOT ERRF1 IS INITIAL "DEVK934135
OR NOT ERRF2 IS INITIAL "DEVK934135
OR NOT ERRF3 IS INITIAL "DEVK934135
OR NOT ERRF4 IS INITIAL "DEVK934135
OR NOT ERRF5 IS INITIAL. "DEVK934135
ITAB_LIPS_X-VBELN = ITAB_LIPS-VBELN.
ITAB_LIPS_X-BLDAT = ITAB_LIPS-BLDAT. "DEVK934135
ITAB_LIPS_X-BUDAT = ITAB_LIPS-BUDAT. "DEVK934135
ITAB_LIPS_X-IHREZ = ITAB_LIPS-IHREZ. "DEVK934135
APPEND ITAB_LIPS_X.
ENDLOOP.
SORT ITAB_LIPS_X BY VBELN.
DELETE ADJACENT DUPLICATES FROM ITAB_LIPS_X.
LOOP AT ITAB_LIPS.
READ TABLE ITAB WITH KEY RECID = ITAB_LIPS-RECID.
SY_COPY-INDEX = SY-TABIX.
IF SY-SUBRC EQ 0.
ITAB-ERRFA = ITAB_LIPS-ERRFA.
ITAB-ERRFB = ITAB_LIPS-ERRFB.
ITAB-ERRFC = ITAB_LIPS-ERRFC.
ITAB-ERRFD = ITAB_LIPS-ERRFD.
ITAB-ERRFE = ITAB_LIPS-ERRFE.
ITAB-ERRFF = ITAB_LIPS-ERRFF.
ITAB-ERRF1 = ITAB_LIPS-ERRF1.
ITAB-ERRF2 = ITAB_LIPS-ERRF2.
ITAB-ERRF3 = ITAB_LIPS-ERRF3.
ITAB-ERRF4 = ITAB_LIPS-ERRF4.
ITAB-ERRF5 = ITAB_LIPS-ERRF5.
MODIFY ITAB INDEX SY_COPY-INDEX.
ENDIF.
ENDLOOP.
Decide the goods receipt item number for the delivery items that are
to be processed. Delivery items with zero quantities are not shown up
in MB0A transaction for GR
CLEAR V_DEL_ZERO.
IF NOT ITAB_LIPS_G[] IS INITIAL.
SELECT VBELN POSNR LFIMG
INTO CORRESPONDING FIELDS OF TABLE ITAB_LIPS_Z FROM LIPS
FOR ALL ENTRIES IN ITAB_LIPS_G
WHERE VBELN = ITAB_LIPS_G-VBELN
AND LFIMG EQ 0.
IF SY-SUBRC EQ 0.
V_DEL_ZERO = 'X'.
CLEAR ITAB_LIPS_Z.
FREE ITAB_LIPS_Z.
SELECT VBELN POSNR LFIMG
INTO CORRESPONDING FIELDS OF TABLE ITAB_LIPS_Z FROM LIPS
FOR ALL ENTRIES IN ITAB_LIPS_G
WHERE VBELN = ITAB_LIPS_G-VBELN.
SORT ITAB_LIPS_Z BY VBELN POSNR.
LOOP AT ITAB_LIPS_Z.
AT NEW VBELN.
CLEAR V_ZEILE.
ENDAT.
IF ITAB_LIPS_Z-LFIMG NE 0.
V_ZEILE = V_ZEILE + 1.
ENDIF.
ITAB_LIPS_Z-ZEILE = V_ZEILE.
MODIFY ITAB_LIPS_Z.
ENDLOOP.
ELSE.
V_DEL_ZERO = ' '.
ENDIF.
ENDIF.
SORT ITAB_LIPS_Z BY VBELN POSNR.
LOOP AT ITAB_LIPS.
IF V_DEL_ZERO = ' '.
ITAB_LIPS-ZEILE = ITAB_LIPS-POSNR.
ELSE.
CLEAR ITAB_LIPS_Z.
READ TABLE ITAB_LIPS_Z WITH KEY VBELN = ITAB_LIPS-VBELN
POSNR = ITAB_LIPS-POSNR BINARY SEARCH.
ITAB_LIPS-ZEILE = ITAB_LIPS_Z-ZEILE.
ENDIF.
MODIFY ITAB_LIPS.
ENDLOOP.
SORT ITAB_LIPS BY VBELN DESCENDING POSNR ASCENDING.
ENDFORM. " 220_PROCESS_DATA
*& Form 300_post_documents
FORM 300_POST_DOCUMENTS.
LOOP AT ITAB_LIPS_G.
PERFORM 310_POST_GR_DOC.
MODIFY ITAB_LIPS_G.
CLEAR ITAB_LIPS_G.
ENDLOOP.
CLEAR: BDCDATA, BDCDATA[].
ITAB_LIPS_R[] = ITAB_LIPS_G[].
ITAB_LIPS_G[] = ITAB_LIPS_X[].
LOOP AT ITAB_LIPS_G.
PERFORM 350_UPDATE_DELIVERY_DOC.
MODIFY ITAB_LIPS_G.
CLEAR ITAB_LIPS_G.
ENDLOOP.
PERFORM close_group.
ENDFORM. " 300_post_documents
*& Form 310_POST_GR_DOC
FORM 310_POST_GR_DOC.
PERFORM 320_POST_GR_HEADER.
LOOP AT ITAB_LIPS WHERE VBELN = ITAB_LIPS_G-VBELN
AND LFIMG NE 0
AND PROCQTY NE 0
AND ERRFA IS INITIAL
AND ERRFB IS INITIAL
AND ERRFC IS INITIAL
AND ERRFD IS INITIAL
AND ERRFE IS INITIAL
AND ERRFF IS INITIAL
AND ERRF1 IS INITIAL
AND ERRF2 IS INITIAL
AND ERRF5 IS INITIAL.
IF ITAB_LIPS-ZEILE EQ 1.
PERFORM 335_POST_GR_ITEMS.
ELSE.
PERFORM 330_POST_GR_ITEMS.
ENDIF.
ENDLOOP.
PERFORM 340_SAVE_GR_DOC.
ENDFORM. " 310_POST_GR_DOC
*& Form 320_POST_GR_HEADER
FORM 320_POST_GR_HEADER.
DATA: L_BLDAT TYPE SYDATUM,
L_BUDAT TYPE SYDATUM.
WRITE: ITAB_LIPS_G-BLDAT TO L_BLDAT,
ITAB_LIPS_G-BUDAT TO L_BUDAT.
IF ITAB_LIPS_G-IHREZ+0(10) NE '0000000000' AND
ITAB_LIPS_G-IHREZ+0(10) NE ' '.
WHILE ITAB_LIPS_G-IHREZ+0(1) EQ '0'.
SHIFT ITAB_LIPS_G-IHREZ.
ENDWHILE.
ENDIF.
perform bdc_dynpro using 'SAPMM07M' '0201'.
perform bdc_field using 'BDC_CURSOR'
'RM07M-VLIEF'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'MKPF-BKTXT'
ITAB_LIPS_G-IHREZ.
perform bdc_field using 'MKPF-BLDAT'
L_BLDAT.
perform bdc_field using 'MKPF-BUDAT'
L_BUDAT.
perform bdc_field using 'RM07M-BWARTWE'
'101'.
perform bdc_field using 'RM07M-WERKS'
perform bdc_field using 'RM07M-LGORT'
perform bdc_field using 'RM07M-XNUVO'
'X'.
perform bdc_field using 'XFULL'
perform bdc_field using 'RM07M-VLIEF'
ITAB_LIPS_G-VBELN.
perform bdc_dynpro using 'SAPMM07M' '0221'.
perform bdc_field using 'BDC_OKCODE'
'=SELN'.
perform bdc_dynpro using 'SAPMM07M' '0221'.
perform bdc_field using 'BDC_CURSOR'
'MSEG-ERFMG(01)'.
ENDFORM. " 320_POST_GR_HEADER
*& Form 330_POST_GR_ITEMS
FORM 330_POST_GR_ITEMS.
perform bdc_field using 'BDC_OKCODE'
'=KLA'.
perform bdc_dynpro using 'SAPMM07M' '1501'.
perform bdc_field using 'BDC_OKCODE'
'=OK'.
VV_ZEILE = ITAB_LIPS-ZEILE.
PERFORM BDC_FIELD USING 'RM07M-ZEILE'
VV_ZEILE.
perform bdc_dynpro using 'SAPMM07M' '0221'.
perform bdc_field using 'RM07M-XSELK(01)'
'X'.
VV_PROCQTY = ITAB_LIPS-PROCQTY.
perform bdc_field using 'MSEG-ERFMG(01)'
VV_PROCQTY.
perform bdc_field using 'MSEG-CHARG(01)'
ITAB_LIPS-CHARG.
perform bdc_field using 'MSEG-INSMK(01)'
'S'.
ENDFORM. " 330_POST_GR_ITEMS
*& Form 340_SAVE_GR_DOC
FORM 340_SAVE_GR_DOC.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
CLEAR V_FAIL_IND.
PERFORM BDC_TRANSACTION USING 'MB0A'
CHANGING V_FAIL_IND.
ENDFORM. " 340_SAVE_GR_DOC
*& Form 350_UPDATE_DELIVERY_DOC
FORM 350_UPDATE_DELIVERY_DOC.
PERFORM 360_UPDATE_DELIVERY_HEADER.
LOOP AT ITAB_LIPS WHERE VBELN = ITAB_LIPS_G-VBELN
AND ERRFA IS INITIAL
AND ERRFB IS INITIAL
AND ERRFC IS INITIAL.
AND errfd IS INITIAL
AND errfe IS INITIAL.
PERFORM 370_UPDATE_DELIVERY_ITEMS.
ENDLOOP.
PERFORM 380_SAVE_DELIVERY_DOC.
ENDFORM. " 350_UPDATE_DELIVERY_DOC
*& Form 360_UPDATE_DELIVERY_HEADER
FORM 360_UPDATE_DELIVERY_HEADER.
perform bdc_dynpro using 'SAPMV50A' '0108'.
perform bdc_field using 'BDC_CURSOR'
'LIKP-VBELN'.
perform bdc_field using 'BDC_OKCODE'
'=UELA'.
perform bdc_field using 'LIKP-VBELN'
ITAB_LIPS_G-VBELN.
ENDFORM. " 360_UPDATE_DELIVERY_HEADER
*& Form 370_UPDATE_DELIVERY_ITEMS
FORM 370_UPDATE_DELIVERY_ITEMS.
IF ITAB_LIPS-ERRFD EQ 'X' OR
ITAB_LIPS-ERRFE EQ 'X' OR
ITAB_LIPS-ERRFF EQ 'X'.
ITAB_LIPS-NEWMFRGR = 'E'.
ENDIF.
perform bdc_dynpro using 'SAPMV50A' '0270'.
perform bdc_field using 'BDC_CURSOR'
'RV50A-VERUR_LA'.
perform bdc_field using 'BDC_OKCODE'
'=POPO'.
perform bdc_dynpro using 'SAPMV50A' '0111'.
perform bdc_field using 'BDC_CURSOR'
'RV50A-POSNR'.
perform bdc_field using 'BDC_OKCODE'
'=POPO'.
VV_POSNR = ITAB_LIPS-POSNR.
perform bdc_field using 'RV50A-POSNR'
VV_POSNR.
perform bdc_dynpro using 'SAPMV50A' '0270'.
perform bdc_field using 'BDC_CURSOR'
'LIPS-POSNR(01)'.
perform bdc_field using 'BDC_OKCODE'
'=LAPD'.
perform bdc_field using 'RV50A-LIPS_SELKZ(01)'
'X'.
perform bdc_dynpro using 'SAPMV50A' '0570'.
perform bdc_field using 'BDC_CURSOR'
'LIPS-MFRGR'.
perform bdc_field using 'BDC_OKCODE'
'=BACK'.
perform bdc_field using 'LIPS-MFRGR'
ITAB_LIPS-NEWMFRGR.
ENDFORM. " 370_UPDATE_DELIVERY_ITEMS
*& Form 380_SAVE_DELIVERY_DOC
FORM 380_SAVE_DELIVERY_DOC.
perform bdc_dynpro using 'SAPMV50A' '0270'.
perform bdc_field using 'BDC_CURSOR'
'RV50A-VERUR_LA'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
If GR document is not posted successfully, then do not update the
status of delivery document
CLEAR V_FAIL_IND.
PERFORM BDC_TRANSACTION USING 'VL32'
CHANGING V_FAIL_IND.
IF V_FAIL_IND = 'X'.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'VL32'
TABLES
DYNPROTAB = BDCDATA.
REFRESH BDCDATA.
ENDIF.
ENDFORM. " 380_SAVE_DELIVERY_DOC
Start new transaction according to parameters *
FORM BDC_TRANSACTION USING TCODE
CHANGING V_FAILURE_IND.
DATA: L_MSTRING(480).
DATA: L_SUBRC LIKE SY-SUBRC.
REFRESH MESSTAB.
CALL TRANSACTION TCODE USING BDCDATA
MODE CTUMODE
UPDATE CUPDATE
MESSAGES INTO MESSTAB.
L_SUBRC = SY-SUBRC.
CLEAR V_FAILURE_IND.
IF L_SUBRC NE 0.
V_FAILURE_IND = 'X'.
CLEAR V_IND.
LOOP AT MESSTAB.
SELECT SINGLE * FROM T100 WHERE SPRSL = MESSTAB-MSGSPRA
AND ARBGB = MESSTAB-MSGID
AND MSGNR = MESSTAB-MSGNR.
IF SY-SUBRC = 0.
L_MSTRING = T100-TEXT.
IF L_MSTRING CS '&1'.
REPLACE '&1' WITH MESSTAB-MSGV1 INTO L_MSTRING.
REPLACE '&2' WITH MESSTAB-MSGV2 INTO L_MSTRING.
REPLACE '&3' WITH MESSTAB-MSGV3 INTO L_MSTRING.
REPLACE '&4' WITH MESSTAB-MSGV4 INTO L_MSTRING.
ELSE.
REPLACE '&' WITH MESSTAB-MSGV1 INTO L_MSTRING.
REPLACE '&' WITH MESSTAB-MSGV2 INTO L_MSTRING.
REPLACE '&' WITH MESSTAB-MSGV3 INTO L_MSTRING.
REPLACE '&' WITH MESSTAB-MSGV4 INTO L_MSTRING.
ENDIF.
CONDENSE L_MSTRING.
IF MESSTAB-MSGTYP = 'E'.
ERRORTAB-TCODE = TCODE.
ERRORTAB-VBELN = ITAB_LIPS_G-VBELN.
ERRORTAB-ERROR_TEXT = L_MSTRING.
APPEND ERRORTAB.
V_IND = 'X'.
ENDIF.
ELSE.
IF MESSTAB-MSGTYP = 'E'.
ERRORTAB-TCODE = TCODE.
ERRORTAB-VBELN = ITAB_LIPS_G-VBELN.
ERRORTAB-ERROR_TEXT = TEXT-U01.
APPEND ERRORTAB.
V_IND = 'X'.
ENDIF.
ENDIF.
ENDLOOP.
IF V_IND IS INITIAL.
ERRORTAB-TCODE = TCODE.
ERRORTAB-VBELN = ITAB_LIPS_G-VBELN.
ERRORTAB-ERROR_TEXT = TEXT-U01.
APPEND ERRORTAB.
ENDIF.
ELSE.
IF TCODE = 'MB0A'.
LOOP AT MESSTAB WHERE MSGTYP = 'S'
AND MSGID = 'M7'
AND MSGNR = '060'.
IF NOT MESSTAB-MSGV1 IS INITIAL.
ITAB_LIPS_G-MBLNR = MESSTAB-MSGV1.
ENDIF.
ENDLOOP.
ELSEIF TCODE = 'VL32'.
ITAB_LIPS_G-DLVIND = 'X'.
ENDIF.
ENDIF.
IF L_SUBRC <> 0 AND E_GROUP <> SPACE.
IF E_GROUP_OPENED = ' '.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = E_GROUP
USER = E_USER
KEEP = E_KEEP
HOLDDATE = E_HDATE.
E_GROUP_OPENED = 'X'.
ENDIF.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = TCODE
TABLES
DYNPROTAB = BDCDATA.
ENDIF.
REFRESH BDCDATA.
ENDFORM.
*& Form 335_POST_GR_ITEMS
FORM 335_POST_GR_ITEMS.
VV_ZEILE = ITAB_LIPS-ZEILE.
perform bdc_field using 'RM07M-XSELK(01)'
'X'.
VV_PROCQTY = ITAB_LIPS-PROCQTY.
perform bdc_field using 'MSEG-ERFMG(01)'
VV_PROCQTY.
perform bdc_field using 'MSEG-CHARG(01)'
ITAB_LIPS-CHARG.
perform bdc_field using 'MSEG-INSMK(01)'
'S'.
ENDFORM. " 335_POST_GR_ITEMS
*& Form 399_RETRIEVE_DOCUMENTS
&----that is a warning message only ... But if you want to fix it then replace all 000 with 001 in your write statement. The position instead of 000 you have to give 001
write : /000(10)....instead of this
write : /1(10) or write : /(10) or write : /001(10) any thing you can use.
regards
shiba dutta -
"Sorry, a serious error has occurred that requires Premiere to be shut down. We will attempt to save your current project"
Yep, that one. I get it every time I open up Premiere. The error box reappears after a couple of seconds, then it keeps reappearing and stacking up until I close the program.
I've done the most recent updates (Vista and Adobe), and spent hours on the net reading and trying different solutions. To no avail.
I think this is a pretty common error, no? But from everything I've read, people get the error using PR mid-program. For me, I can't even open the program. After Effects also starts (as a process in Task Manager), but runs in the background.
I updated MS Office 2007 (big update) and also my NVIDIA drivers (after I started getting this error).
You can read my recent problem that might help you understand a little bit more about this error on this thread.
Would upgrading to a Quadro GPU help at all?
My PC:
C2D E8400 o'cd @ 3.6GHz
8GB ram (DDR2 800)
1TB raid 0 (500GB internal as scratch disk)
2 512mb 9600GT's in SLi - should I upgrade?? NVIDIA Quadro?
Vista Ultimate 64-bitThanks, Jim.
So, (considering my unwillingness to wreck my current setup), would this possibly help my performance:
OS: (2) 500GB internal SATA's in RAID 0 (as is)
Scratch Disk: (1) 500GB internal SATA (sort-of as is)
Media files Disk: (1) 1TB non-'green' internal SATA (new purchase)
My main question is: What's the main difference between a Scratch Disk and a Media Files Disk?
For instance, I have a newly captured clip (let's call it footage.mpeg). And I have music.mp3 and lotsofpictures.jpg. So would I store all three of those files on my Media Files Disk, or on the Scratch Disk? The Scratch Disk was just for rendered files I thought (like when you're working on a project and previewing it?)? And so is Premiere reading from my Media Files Disk to play footage.mpeg and then using the Scratch Disk to bounce files back and forth? Sorry if I'm not making ANY sense.
Is my suggested setup a dumb idea (bad investment)?
PS - this may be another problem: my Scratch Disk (Hitachi internal 500GB SATA) is an OEM drive shipped as running on SATA I for 'backwards capability' for older mobos. So, I downloaded the firmware updater from Hitachi and the updater wasn't working (locking up after booting from CD). I figured it would be fine. Well, SATA I runs at a much slower speed than SATA II (the new standard). But I was transferring files to and from the drive and my OS RAID configuration and Vista was reporting over 30MB/s sustained write speed. Which by the way is not SATA II (also called SATA 3.0Gbit/s). I think this may be causing some of my performance issues. What do you think? Normally, SATA II should run at 300MB/s (so they claim) SATA 3.0Gbit/s specs -
I have a flash label on a movie clip with its instance name called 'txtToomName'. This object has existed, been successfully instantiated and used for over a year without any modifications. All of a sudden, during the getClassByName() call, I start getting an errors.
The actual error is:
ReferenceError: Error #1065: Variable txtToonName is not defined.
at mcToonInformation_Design/__setTab_txtToonName_mcToonInformation_Design_Layer1_0()
There are other objects on the movieclip, defined as buttons, that were derived from an object in the library that didn't have its linkage set. This had worked fine up til now where I could define a common object without linkage, create copies of that object on a movie clip and assign an instance name to allow access.
Once I changed my buttons to be an instance of an object in the library with linkage properties assigned they didn't give me an error. The problem now is that it doesn't seem to like the Label object which is by default an instance of an object in the library that does have linkage properties set and yet still doesn't like it.
Anyone have any idea what the heck is going on? There hasn't been any library changes made or CS5 updates applied since 8/16/2010, the date on flash.exe.
I am using CS5 ver.11.0.2.489
Any advise/direction/assistance would be greatly appreciated as this is a show stopper and adds hours upon hours of adjustments to an application that has been running fine for a long time.
Message was edited by: whornak
In an attempt to get beyond the previously mentioned error, realizing that it references 'tab', I made the label inaccessible and now receive the following error:
ReferenceError: Error #1065: Variable txtToonName is not defined.
at mcToonInformation_Design/__setAcc_txtToonName_mcToonInformation_Design_Layer1_0()Upon attempted execution, after changing the setting you requested, the following is what I get.
ReferenceError: Error #1065: Variable lblCoinQty is not defined.
at mcToonInformation_Design/__setTab_lblCoinQty_mcToonInformation_Design_Layer1_0()[mcToonIn formation_Design::__setTab_lblCoinQty_mcToonInformation_Design_Layer1_0:1]
at mcToonInformation_Design()
at BPBGlobalFunctions$/getCasaMovieClipFromBulkLoader()[D:\Wayne\WizardBrewStudios\BackPackB uddys_Dev\BackPackBuddys_CS5_SFSX2\src\classes\BPBGlobalFunctions.as:167]
at com.bpb.ui::ToonInformationUI$/loadToonInformationUI()
at com.bpb::BackPackBuddys/onToonInformationLoadRequest()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.bpb.avatar::ExampleAvatar/onToonClick()
Cannot display source code at this location.
Another thing noticed is that the object that flash is having an issue making adjustments to is visible via the Variables window and has the tabindex property. -
I have a test class which I am running as an application in Eclipse to test the behavior of another class, MyClass:
public class TestMyClass {
public static void main(String[] args) {
MyClass mc = new MyClass();
mc.method1();
}I run the application, method1 behaves as expected. Then I change "method1" to "method2" in the code above, save it, and run again (I have Eclipse set to "build automatically"). method2 does not behave as expected. I then touch ANY OTHER FILE in the project (ie, i make a change, undo the change, and save), and method2 behaves as expected. That is, the project HAS NOT CHANGED AT ALL, yet the behavior changes.
"Cleaning" the project in after changing method1 to method2 doesn't help either. I have to actually touch one of the files.
How can this be happening????
TIA,
JohnThere's something seriously f'd up. For a very rude
and crude way of getting rid of this:
1) go to the directory where your project is stored;
2) throw away anything that starts with a dot, e.g.
.metadata, .classpath, .project;
3) throw away all your .class files;
4) go to the directory where eclipse itself is
stored;
5) throw away the 'configuration' directory;
6) start a newborn eclipse.
kind regards,
JosYou forgot: Format your hard drive.
� {� -
Very simple program error (help)
Dear group,
Just wanted to get a number from sdtin and print it. The program shows a compiler error. Help.
import java.io.*;
class keys
public static void main(String args[])
int a,b;
System.out.println("enter a number");
try
a = System.in.read(b);
System.out.write(a);
catch(IOException e){
` System.out.print("Sorry. can't print.");
}error:
symbol:cannot resolve sysbol
location: class java.io.ImputStream
a = System.in.read(b);but the same function works in this program.
class keys{
public static void main (String args[])
byte name[] = new byte[100];
int n_read = 0;
System.out.println("What is your name?");
try {
n_read = System.in.read(name);
System.out.print("Hello ");
System.out.write(name,0,n_read);
catch (IOException e) {
System.out.print("Sorry. can't catch your name.");
}
Maybe you are looking for
-
Can I use a non apple wireless hard drive with time machine?
Can I use a non apple wireless hard drive with time Machine?
-
Vendors report by account group
Hi Friends, I have a list of vendors in an spreadsheet. I want to generate a report with the vendor number, credit, debit, balance and the account group. I tried the SAP defined reports like ( S_ALR_87012082) i can get the vendor, credit, debit, but
-
Took photo with iphone 4s. Picture displays in picture preview on bottom left, but is not in camera roll. Pic should be in phone somewhere since it's in preview. Any advice?
-
How to configure bpm composer and access the projects present in bpm mds re
To access the bpm composer I performed the below mentioned steps: - Installed the standalone weblogic server with soa server configured - Invoked the bpm composer using the url : http://machine:soa_port/bpm/composer - Used weblogic and weblogic1 as u
-
Is there an app or haxies that will retore color to file labels instead of dots, thank you
am simply looking to at least color the file labels as they were in OS 8, or better, the whole file as Unsanity's Label X used to do. Is there an app or haxies that anyone nows that could do this, please