VBA for Task Dependencies
Say a task has two dependency chains associated with it. For instance, suppose one chain goes from task 2 to 4 to 8 to 10 and another chain goes from 2 to 5 to 9. When looping through the task dependencies object recursively, is there some way to detect
when the links shift from one chain to another?
I'm using the approach outlined by Rod Gill on pp 335-6 of his fine book. (See below.) The approach does not seem to differentiate between the two chains--Flag20 is marked for both chains at the same time. I need to process one chain, then the other.
Public Sub DepSucc(Tsk As Task)
Dim Dep As TaskDependency
If Tsk.Flag20 = False Then
Tsk.Flag20 = True
For Each Dep In Tsk.TaskDependencies
If (Dep.To.ID <> Tsk.ID) Then
DepSucc Dep.To
End If
Next
End If
End Sub
RobVV
The first time you loop through all dependencies for the selected task you need to set in a variable what field to update. So you need a wrapper sub around what you have, something like (not tested)
Public Sub DepFirstSucc(Tsk As Task)
Dim Dep As TaskDependency
Dim Flagnum as Long
FlagNum = FlagNum
If Tsk.GetField(FlagNum) = False Then
Tsk.SetField FlagNum, True
For Each Dep In Tsk.TaskDependencies
If (Dep.To.ID <> Tsk.ID) Then
DepSucc Dep.To, FlagNum
FlagNum = FlagNum - 1
End If
Next
End If
End Sub
Public Sub DepSucc(Tsk As Task, FlagNum as Long)
Dim Dep As TaskDependency
FlagNum = FlagNum
If Tsk.GetField(FlagNum) = False Then
Tsk.SetField FlagNum, True
For Each Dep In Tsk.TaskDependencies
If (Dep.To.ID <> Tsk.ID) Then
DepSucc Dep.To, Flagnum
End If
Next
End If
End Sub
Note Flag20 is last flag, so I decrement the Flagnum field to use Flgag19 etc.
Rod Gill
Author of the one and only Project VBA Book
www.project-systems.co.nz
Similar Messages
-
We are running release 12.0 of the Teleservice HTML Module or Oracle Customer Support.
How do you setup task dependencies ? For example you don't want task 2 to get created before task 1 is completed.I followed the instructions on the Common Application Calendar implementation guide which states that you can do it by setting up dependencies in the Task Template but it doesn't seem to be working. All the tasks get created at the same time. Is this feature just for forms ?Start with http://developer.apple.com/macosx/launchd.html and repost to the server products forums or Unix forum (under OS X Technologies).
-
Error while querying workflow message attributes for task
Can some one please help me with this error?
I get this error when I submit a task in worklist app. I have figure out that it is causing due to one payload in the table in the task. If remove that payload I am able to submit the task.
Error while querying workflow message attributes for task a99d1cf3-5e91-4c4a-8660-aeae91bfbec0 with version 5.
Check the underlying exception and the database connection information. If the error persists, contact Oracle Support Services.
oracle.jbo.JboException: Error while querying workflow message attributes.
Error while querying workflow message attributes for task a99d1cf3-5e91-4c4a-8660-aeae91bfbec0 with version 5.
Check the underlying exception and the database connection information. If the error persists, contact Oracle Support Services.
at oracle.bpel.services.datacontrol.XSDDataControl.invokeOperation(XSDDataControl.java:460)
at oracle.adf.model.bean.DCBeanDataControl.invokeMethod(DCBeanDataControl.java:430)
at oracle.adf.model.binding.DCInvokeMethod.callMethod(DCInvokeMethod.java:261)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1635)
at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2144)
at oracle.adf.model.bean.DCBeanDataControl.invokeOperation(DCBeanDataControl.java:467)
at oracle.adf.model.adapter.AdapterDCService.invokeOperation(AdapterDCService.java:307)Can anybody help me on this?
I did some google but I get this only which is not much helpful.
http://download.oracle.com/docs/cd/E14571_01/core.1111/e10113/chapter_bpm_messages.htm -
Detecting file type in vba for word
I have directories full of files on a Mac. Most of these files are Doc files, some Txt files and some other types. Unfortunately the files don't have file extensions (not hidden but actually no file extensions). On a PC in a macro I need to open
these doc files (from the Mac) and do some manipulations on the files and then save them. I have a macro which works as long as all the files are Doc files so if I can detect the file type in my macro I can skip the non-Doc files and process only
the Doc files.
Is there a way in a vba for word macro to detect a file type other than by the file extension? Or if that can't be done can I put error trapping on my Open statement that will catch an attempt to Open a non-Doc type file?
Thanks
Harry SpierIf your code is running on Windows and you are in a position to install software on it, you
may be able to get reasonably reliable detection using dsofile.dll, which you can get here:
I really do not know whether it will work with files stored or create on Mac (and in any case, if these are old Mac .doc files, you may find that Windows Word cannot open them anyway.
You need to
- register the dll via regsvr32
- in VBE, use Tools->References... to make a reference to"DSO OLE Document Properties Reader 2.1"
- use code such as the sample below.
Option Explicit
Function IsWordDoc(FullName As String) As Boolean
' FullName is the full path name of the file you want to check
Dim objDocumentProperties As DSOFile.OleDocumentProperties
IsWordDoc = False
Set objDocumentProperties = New DSOFile.OleDocumentProperties
' or you can add dsoOptionOnlyOpenOLEFiles to the options and
' use error trapping to detect -2147217148
objDocumentProperties.Open sFileName:=FullName, ReadOnly:=True, Options:=dsoOptionDontAutoCreate
If objDocumentProperties.IsOleFile Then
If objDocumentProperties.OleDocumentFormat = "MSWordDoc" Then
IsWordDoc = True
End If
End If
objDocumentProperties.Close savebeforeclose:=False
Set objDocumentProperties = Nothing
End Function
Sub testIsWordDoc()
Debug.Print IsWordDoc("c:\a\test.doc")
Debug.Print IsWordDoc("c:\a\test.xls")
End Sub
You may also find that the value of the property I am checking varies and that you need to look at other things, such as
objDocumentProperties.SummaryProperties.ApplicationName
but that value definitely varies according to the version of Word used to create the .doc, so you would need to discover what values it can have in a valid .doc.
Peter Jamieson -
Could not get stream for task attachment
When uploading Document and Trying to view documents in Worklits we get the following error:
<Error> <oracle.soa.services.workflow.worklist> <BEA-000000> <<oracle.bpel.services.workflow.worklist.servlet.ADFAttachmentHelper.getTaskAttachment>
Could not get stream for task attachment:
This seem to have been a bug on previous versions of Oracle BPM but we're receiving it on 11.1.1.7
Any idea what might be causing this?
someone that experienced a similar issue but was resolved bu applying a patch
ID 1453480 - someone that experienced a similar issue but was resolved bu applying a patch
ThanksComplete restart of the environment solved issue
-
WS Receiver Adapter Error - Error in WSDL access for task ID
Hi Experts,
Need Help..I am working on (PI 7.1:HP-UX) IDoc to WS Adapter scenario. Message failed in SXMB_Moni...Pasting the Error log. Does this related to any Network Issues? Do I need to do anymore configurations in WS Received Adapter?
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="INTERNAL">WS_ADAPTER_SYS_ERROR</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:Stack>System error while calling Web service adapter: Error in WSDL access: 'Error in WSDL access for task ID "00000000000000000021"; read the long text'</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Thanks,
Phani Akella.Hi,
Ports were opened in the firewall...Now struggling with a different error. Gone through SDN and found Note 1142454 - Error when initializing the SOAP application.
System error while calling Web service adapter: Error when initializing SOAP client application: 'error_text'
This did not help...Do we need to do any SOAMANAGER Configuration? Please suggest.
Thanks in Advance,
Phani Akella. -
Sending and receivind ADC coefficients from/to soundcard in VBA for Excel 2010
How to send and receive ADC coefficients from/to soundcard(mixer,microphone) in VBA for Excel 2010 (noncom. edition, x64) to Excel macros for DFT (from IDFT), IIR , user defined samples parser (special
noise generator, graphic s(t),S(jw), arg s(jw) soundcard AFR test ) ?
What .dll is need for this (without bass.dll)?Example from internet :
'This project needs a module and a form
'The form must contain two labels, two progressbars, a timer and a checkbox
'Paste this code into the form
Dim hmixer As Long ' mixer handle
Dim inputVolCtrl As MIXERCONTROL ' waveout volume control
Dim outputVolCtrl As MIXERCONTROL ' microphone volume control
Dim rc As Long ' return code
Dim ok As Boolean ' boolean return code
Dim mxcd As MIXERCONTROLDETAILS ' control info
Dim vol As MIXERCONTROLDETAILS_SIGNED ' control's signed value
Dim volume As Long ' volume value
Dim volHmem As Long ' handle to volume memory
Private Sub Form_Load()
Me.ScaleMode = vbTwips
Me.Caption = "Volume meter"
Label1.Move 0, 0
Label1.AutoSize = True
Label1.Caption = "Input level"
Label2.Move 0, 4 * Label1.Height
Label2.AutoSize = True
Label2.Caption = "Output level"
ProgressBar1.Move Label1.Width * 2, 0, 3375
ProgressBar2.Move Label1.Width * 2, Label2.Top, 3375
Check1.Move ProgressBar1.Left, ProgressBar1.Height
Check1.Caption = "Get Input"
Me.Move Me.Left, Me.Top, ProgressBar1.Width + ProgressBar1.Left + 10 * Screen.TwipsPerPixelX, ProgressBar2.Top + ProgressBar2.Height + 30 * Screen.TwipsPerPixelY
Timer1.Interval = 50
Timer1.Enabled = True
' Open the mixer specified by DEVICEID
rc = mixerOpen(hmixer, DEVICEID, 0, 0, 0)
If ((MMSYSERR_NOERROR <> rc)) Then
MsgBox "Couldn't open the mixer."
Exit Sub
End If
' Get the input volume meter
ok = GetControl(hmixer, MIXERLINE_COMPONENTTYPE_DST_WAVEIN, MIXERCONTROL_CONTROLTYPE_PEAKMETER, inputVolCtrl)
If (ok <> True) Then
ok = GetControl(hmixer, MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE, MIXERCONTROL_CONTROLTYPE_PEAKMETER, inputVolCtrl)
End If
If (ok = True) Then
ProgressBar1.Min = 0
ProgressBar1.Max = inputVolCtrl.lMaximum
Else
ProgressBar1.Enabled = False
MsgBox "Couldn't get wavein meter"
End If
' Get the output volume meter
ok = GetControl(hmixer, MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT, MIXERCONTROL_CONTROLTYPE_PEAKMETER, outputVolCtrl)
If (ok = True) Then
ProgressBar2.Min = 0
ProgressBar2.Max = outputVolCtrl.lMaximum
Else
ProgressBar2.Enabled = False
MsgBox "Couldn't get waveout meter"
End If
' Initialize mixercontrol structure
mxcd.cbStruct = Len(mxcd)
volHmem = GlobalAlloc(&H0, Len(volume)) ' Allocate a buffer for the volume value
mxcd.paDetails = GlobalLock(volHmem)
mxcd.cbDetails = Len(volume)
mxcd.cChannels = 1
End Sub
Private Sub Check1_Click()
If (Check1.Value = 1) Then
StartInput ' Start receiving audio input
Else
StopInput ' Stop receiving audio input
End If
End Sub
Private Sub Timer1_Timer()
On Error Resume Next
' Process sound buffer if recording
If (fRecording) Then
For i = 0 To (NUM_BUFFERS - 1)
If inHdr(i).dwFlags And WHDR_DONE Then
rc = waveInAddBuffer(hWaveIn, inHdr(i), Len(inHdr(i)))
End If
Next
End If
' Get the current input level
If (ProgressBar1.Enabled = True) Then
mxcd.dwControlID = inputVolCtrl.dwControlID
mxcd.item = inputVolCtrl.cMultipleItems
rc = mixerGetControlDetails(hmixer, mxcd, MIXER_GETCONTROLDETAILSF_VALUE)
CopyStructFromPtr volume, mxcd.paDetails, Len(volume)
If (volume < 0) Then
volume = -volume
End If
ProgressBar1.Value = volume
End If
' Get the current output level
If (ProgressBar2.Enabled = True) Then
mxcd.dwControlID = outputVolCtrl.dwControlID
mxcd.item = outputVolCtrl.cMultipleItems
rc = mixerGetControlDetails(hmixer, mxcd, MIXER_GETCONTROLDETAILSF_VALUE)
CopyStructFromPtr volume, mxcd.paDetails, Len(volume)
If (volume < 0) Then volume = -volume
ProgressBar2.Value = volume
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If (fRecording = True) Then
StopInput
End If
GlobalFree volHmem
End Sub
'Paste this code into the module
Public Const CALLBACK_FUNCTION = &H30000
Public Const MM_WIM_DATA = &H3C0
Public Const WHDR_DONE = &H1 ' done bit
Public Const GMEM_FIXED = &H0 ' Global Memory Flag used by GlobalAlloc functin
Type WAVEHDR
lpData As Long
dwBufferLength As Long
dwBytesRecorded As Long
dwUser As Long
dwFlags As Long
dwLoops As Long
lpNext As Long
Reserved As Long
End Type
Type WAVEINCAPS
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * 32
dwFormats As Long
wChannels As Integer
End Type
Type WAVEFORMAT
wFormatTag As Integer
nChannels As Integer
nSamplesPerSec As Long
nAvgBytesPerSec As Long
nBlockAlign As Integer
wBitsPerSample As Integer
cbSize As Integer
End Type
Declare Function waveInOpen Lib "winmm.dll" (lphWaveIn As Long, ByVal uDeviceID As Long, lpFormat As WAVEFORMAT, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long
Declare Function waveInPrepareHeader Lib "winmm.dll" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long
Declare Function waveInReset Lib "winmm.dll" (ByVal hWaveIn As Long) As Long
Declare Function waveInStart Lib "winmm.dll" (ByVal hWaveIn As Long) As Long
Declare Function waveInStop Lib "winmm.dll" (ByVal hWaveIn As Long) As Long
Declare Function waveInUnprepareHeader Lib "winmm.dll" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long
Declare Function waveInClose Lib "winmm.dll" (ByVal hWaveIn As Long) As Long
Declare Function waveInGetDevCaps Lib "winmm.dll" Alias "waveInGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As WAVEINCAPS, ByVal uSize As Long) As Long
Declare Function waveInGetNumDevs Lib "winmm.dll" () As Long
Declare Function waveInGetErrorText Lib "winmm.dll" Alias "waveInGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long
Declare Function waveInAddBuffer Lib "winmm.dll" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long
Public Const MMSYSERR_NOERROR = 0
Public Const MAXPNAMELEN = 32
Public Const MIXER_LONG_NAME_CHARS = 64
Public Const MIXER_SHORT_NAME_CHARS = 16
Public Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H3&
Public Const MIXER_GETCONTROLDETAILSF_VALUE = &H0&
Public Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &H2&
Public Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0&
Public Const MIXERLINE_COMPONENTTYPE_SRC_FIRST = &H1000&
Public Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 4)
Public Const MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3)
Public Const MIXERLINE_COMPONENTTYPE_SRC_LINE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2)
Public Const MIXERCONTROL_CT_CLASS_FADER = &H50000000
Public Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000
Public Const MIXERCONTROL_CT_UNITS_SIGNED = &H20000
Public Const MIXERCONTROL_CT_CLASS_METER = &H10000000
Public Const MIXERCONTROL_CT_SC_METER_POLLED = &H0&
Public Const MIXERCONTROL_CONTROLTYPE_FADER = (MIXERCONTROL_CT_CLASS_FADER Or MIXERCONTROL_CT_UNITS_UNSIGNED)
Public Const MIXERCONTROL_CONTROLTYPE_VOLUME = (MIXERCONTROL_CONTROLTYPE_FADER + 1)
Public Const MIXERLINE_COMPONENTTYPE_DST_WAVEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 7)
Public Const MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8)
Public Const MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_SIGNED)
Public Const MIXERCONTROL_CONTROLTYPE_PEAKMETER = (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1)
Declare Function mixerClose Lib "winmm.dll" (ByVal hmx As Long) As Long
Declare Function mixerGetControlDetails Lib "winmm.dll" Alias "mixerGetControlDetailsA" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long
Declare Function mixerGetDevCaps Lib "winmm.dll" Alias "mixerGetDevCapsA" (ByVal uMxId As Long, ByVal pmxcaps As MIXERCAPS, ByVal cbmxcaps As Long) As Long
Declare Function mixerGetID Lib "winmm.dll" (ByVal hmxobj As Long, pumxID As Long, ByVal fdwId As Long) As Long
Declare Function mixerGetLineInfo Lib "winmm.dll" Alias "mixerGetLineInfoA" (ByVal hmxobj As Long, pmxl As MIXERLINE, ByVal fdwInfo As Long) As Long
Declare Function mixerGetLineControls Lib "winmm.dll" Alias "mixerGetLineControlsA" (ByVal hmxobj As Long, pmxlc As MIXERLINECONTROLS, ByVal fdwControls As Long) As Long
Declare Function mixerGetNumDevs Lib "winmm.dll" () As Long
Declare Function mixerMessage Lib "winmm.dll" (ByVal hmx As Long, ByVal uMsg As Long, ByVal dwParam1 As Long, ByVal dwParam2 As Long) As Long
Declare Function mixerOpen Lib "winmm.dll" (phmx As Long, ByVal uMxId As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal fdwOpen As Long) As Long
Declare Function mixerSetControlDetails Lib "winmm.dll" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long
Declare Sub CopyStructFromPtr Lib "kernel32" Alias "RtlMoveMemory" (struct As Any, ByVal ptr As Long, ByVal cb As Long)
Declare Sub CopyPtrFromStruct Lib "kernel32" Alias "RtlMoveMemory" (ByVal ptr As Long, struct As Any, ByVal cb As Long)
Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Declare Function GlobalLock Lib "kernel32" (ByVal hmem As Long) As Long
Declare Function GlobalFree Lib "kernel32" (ByVal hmem As Long) As Long
Type MIXERCAPS
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * MAXPNAMELEN
fdwSupport As Long
cDestinations As Long
End Type
Type MIXERCONTROL
cbStruct As Long
dwControlID As Long
dwControlType As Long
fdwControl As Long
cMultipleItems As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
lMinimum As Long
lMaximum As Long
Reserved(10) As Long
End Type
Type MIXERCONTROLDETAILS
cbStruct As Long
dwControlID As Long
cChannels As Long
item As Long
cbDetails As Long
paDetails As Long
End Type
Type MIXERCONTROLDETAILS_SIGNED
lValue As Long
End Type
Type MIXERLINE
cbStruct As Long
dwDestination As Long
dwSource As Long
dwLineID As Long
fdwLine As Long
dwUser As Long
dwComponentType As Long
cChannels As Long
cConnections As Long
cControls As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
dwType As Long
dwDeviceID As Long
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * MAXPNAMELEN
End Type
Type MIXERLINECONTROLS
cbStruct As Long
dwLineID As Long
dwControl As Long
cControls As Long
cbmxctrl As Long
pamxctrl As Long
End Type
Public i As Integer, j As Integer, rc As Long, msg As String * 200, hWaveIn As Long
Public Const NUM_BUFFERS = 2
Public format As WAVEFORMAT, hmem(NUM_BUFFERS) As Long, inHdr(NUM_BUFFERS) As WAVEHDR
Public Const BUFFER_SIZE = 8192
Public Const DEVICEID = 0
Public fRecording As Boolean
Function GetControl(ByVal hmixer As Long, ByVal componentType As Long, ByVal ctrlType As Long, ByRef mxc As MIXERCONTROL) As Boolean
' This function attempts to obtain a mixer control. Returns True if successful.
Dim mxlc As MIXERLINECONTROLS
Dim mxl As MIXERLINE
Dim hmem As Long
Dim rc As Long
mxl.cbStruct = Len(mxl)
mxl.dwComponentType = componentType
' Obtain a line corresponding to the component type
rc = mixerGetLineInfo(hmixer, mxl, MIXER_GETLINEINFOF_COMPONENTTYPE)
If (MMSYSERR_NOERROR = rc) Then
mxlc.cbStruct = Len(mxlc)
mxlc.dwLineID = mxl.dwLineID
mxlc.dwControl = ctrlType
mxlc.cControls = 1
mxlc.cbmxctrl = Len(mxc)
' Allocate a buffer for the control
'hmem = GlobalAlloc(&H40, Len(mxc))
hmem = GlobalAlloc(GMEM_FIXED, Len(mxc))
mxlc.pamxctrl = GlobalLock(hmem)
mxc.cbStruct = Len(mxc)
' Get the control
rc = mixerGetLineControls(hmixer, mxlc, MIXER_GETLINECONTROLSF_ONEBYTYPE)
If (MMSYSERR_NOERROR = rc) Then
GetControl = True
' Copy the control into the destination structure
CopyStructFromPtr mxc, mxlc.pamxctrl, Len(mxc)
Else
GetControl = False
End If
GlobalFree (hmem)
Exit Function
End If
GetControl = False
End Function
' Function to process the wave recording notifications.
Sub waveInProc(ByVal hwi As Long, ByVal uMsg As Long, ByVal dwInstance As Long, ByRef hdr As WAVEHDR, ByVal dwParam2 As Long)
If (uMsg = MM_WIM_DATA) Then
If fRecording Then
rc = waveInAddBuffer(hwi, hdr, Len(hdr))
End If
End If
End Sub
' This function starts recording from the soundcard. The soundcard must be recording in order to
' monitor the input level. Without starting the recording from this application, input level
' can still be monitored if another application is recording audio
Function StartInput() As Boolean
If fRecording Then
StartInput = True
Exit Function
End If
format.wFormatTag = 1
format.nChannels = 1
format.wBitsPerSample = 8
format.nSamplesPerSec = 8000
format.nBlockAlign = format.nChannels * format.wBitsPerSample / 8
format.nAvgBytesPerSec = format.nSamplesPerSec * format.nBlockAlign
format.cbSize = 0
For i = 0 To NUM_BUFFERS - 1
hmem(i) = GlobalAlloc(&H40, BUFFER_SIZE)
inHdr(i).lpData = GlobalLock(hmem(i))
inHdr(i).dwBufferLength = BUFFER_SIZE
inHdr(i).dwFlags = 0
inHdr(i).dwLoops = 0
Next
rc = waveInOpen(hWaveIn, DEVICEID, format, 0, 0, 0)
If rc <> 0 Then
waveInGetErrorText rc, msg, Len(msg)
MsgBox msg
StartInput = False
Exit Function
End If
For i = 0 To NUM_BUFFERS - 1
rc = waveInPrepareHeader(hWaveIn, inHdr(i), Len(inHdr(i)))
If (rc <> 0) Then
waveInGetErrorText rc, msg, Len(msg)
MsgBox msg
End If
Next
For i = 0 To NUM_BUFFERS - 1
rc = waveInAddBuffer(hWaveIn, inHdr(i), Len(inHdr(i)))
If (rc <> 0) Then
waveInGetErrorText rc, msg, Len(msg)
MsgBox msg
End If
Next
fRecording = True
rc = waveInStart(hWaveIn)
StartInput = True
End Function
' Stop receiving audio input on the soundcard
Sub StopInput()
fRecording = False
waveInReset hWaveIn
waveInStop hWaveIn
For i = 0 To NUM_BUFFERS - 1
waveInUnprepareHeader hWaveIn, inHdr(i), Len(inHdr(i))
GlobalFree hmem(i)
Next
waveInClose hWaveIn
End Sub
Error if using winmm.dll, kernel32 in x64 mode -
Earliest Start and Earliest Finish dates for Tasks
Hi experts,
Can anybody tell me in what table are the Earliest Start and Earliest Finish dates for tasks located? If no table is available does anyone know of a BAPI o function to obtain these dates?
Thanks and best regards,
FernandoHi Wendy!
Thank you so much for your explanation, we have done exactly what you mentioned in your post. In fact we are now using the SCHEDULED_START and SCHEDULED_FINISH instead of the PLANSTART and PLANFINISH.
OK so this is how it went:
In transaction SE11 we added the two fields in our append structure ZDPR_TS_DASHBOARD.
We added them just like they are named:
SCHEDULED_START type DPR_TV_SCHEDULED_START
SCHEDULED_FINISH type DPR_TV_SCHEDULED_FINISH
When doing so, it gave off a warning that SCHEDULED_START and SCHEDULED_FINISH are not customer fields and should have a YY or ZZ in front. I ignored the warning based on your advice and activated the append anyway.
So that´s how the append went.
Next on to the SPRO config:
In the define atributes part, SCHEDULED_START and SCHEDULED_FINISH are already defined as attributes, however I am not sure how the rest of the configurations should go, for example:
Attr.Type, Summarization Rule, Summ. Res, Init Vals., or Reference Attribute.
I left these values standard and didn´t modify anything in this part of SPRO.
Next I checked in the extract layout configuration in SPRO and verified if they were in the 0_Dashboard. It was there alright, but again I am not sure if I should flag any of the two flags in that configuration:
Always Extract and Calculate after Aggr.
I left them blank (standard).
In summary, I didn´t have to do any configuration in SPRO...
I went to the Tasks Dashboard in cProjects and the new columns keep coming with blank values...
What do you think Wendy? Am I still missing something?
Thanks again and regards,
Fernando -
Hello Gurus,
I want to know what is the procedure/code in VBA for passing the calc scripts dynamically based on the selection.
For example:
X=EssVCalculate("Sheetname","Calc_Script name",True)
In the above code instead of the *"Calc_Script name"* I want a script which is called dynamically and the values are calculated accordingly.
Thanks in advance
SaurabhHi Todd,
This is the situation:
I have a calc script in Essbase which I can call to perform the calculations on the current sheet that is retrieved. I want calculation for the following formulas:
x = EssVCalculate("Sheet2", "CalcBC", False)
CalcBC is my calc script which is present in Essbase
So instead of passing the above script I want to pass the conditions dynamically in the VBA code . I don't want to mention the script name directly in EssVCalculate option
For example:
I have three drop down menus from which I would select three different( zero level )members. It would then retrieve the data for that particular values in the excel sheet and now when I click on Calculate button it should calculate the script dynamically.
I don't know how calc scripts can be executed dynamically in the VBA code itself.
Thanks in Advance
Saurabh -
Event for task not defined as start/end event
Hi all,
We get the following error in our inbox although the event seems to work as intended
Event ZIMEC006 APPROVED_REJECTED for task TS81700130 not defined as start/end event
If I go to the task TS81700130, the event APPROVED_REJECTED is defined as a terminating event(under the tab terminating events) with objecttype BO and object ZIMEC006 and the binding is ok
What could be the problem?
Thanks for all help
HansHi,
The BO your using is a custom one,
If Yes Goto the BO, Release that Event,Save and generate the BO.
other wise, if you created a Subtype of the Std. BO, check that Z-event you created is released and the BO delegated to Std. BO, save and generate the BO.
Then try now.
Regards,
Surjith -
IA07 : Key for Task List Group and Production resource tool number link
HI abapers,
In IA07 TCODE , i want to retrieve Key for Task List Group( PLNNR ) and Production resource tool number ( FHMNR) .
In technical settings for both the feilds, structure names are mentioned.
Is there any function module or table link to retrieve both .
thansk & regards
RaghulHi Raghul,
i am also facing the same issue. Kindly let me know if u get any solution for this.
Thanks in advance.
-AruN. -
Plant maintenance - Default value for task list
Dear All ,
I am new to the forum, Can any one throw some light on where do I do customizing settings , so that I will get a pop up window asking to change workcentre while I assign a Task list to an order.
Sorry if this is a silly question.
Thanks in advanceHi,
You can define this at the following IMG path:
>Plant maintenance & customer service -Maintenance & service Processing -Maintenance and service orders -Functions and settings for order types -Default value for task list data and profile assignment
It is also possible for each user to maintain their own settings. This can be done using the following menu:
Transaction IW31/32: Extras > Settings > Default values
-Paul -
Hello,
there is a little bug in the reminder E-Mail for tasks (perhaps only in german), the subject is not replaced correctly.
The subject is
"Hiermit sollen Sie an die Aufgabe {p0} erinnert werden"
The name of the task is "Abklären Terminschiene"
See attached E-Mail in text format.
BR
TobiasHello Tobias,
Thank you for notifying Support of this.
We will investigate and if we verify it and then report it to our Development Team.
Regards,
Patrick Dinneen
Support Engineer
SAP Cloud Support -
Generate Alerts for Task changes in Project Schedule
Hi,
I would like to generate alerts to all the Project resources when a Task has been revised in Project Schedule. Does MS Project Server 2010 provides this functionality OOTB?
If this not available OOTB, I am planning to write an event handler to generate alerts for Task updates. Would an en event handler for Task level changes impact performance of server?.Hello,
This is out of the box with the alerts and reminders in 2010, see:
http://technet.microsoft.com/en-gb/library/gg982969(v=office.14).aspx to enable the alerts
and:
http://technet.microsoft.com/en-gb/library/hh767487(v=office.14).aspx - to configure them
Paul
Paul Mather | Twitter |
http://pwmather.wordpress.com | CPS |
MVP | Downloads -
10g: Cube build performance:Waiting for tasks to finish
I had a question related to cube build performance. We see the following in the OLAPSYS.XML_LOAD_LOG prior to completion of parallel processing. So basically the loading of records etc. happens in 2-3 mins but then the part for "running jobs and started 6 finished 5 out of 6 tasks takes almost 30-40 minutes to complete". At this point in background it invokes the xmlloader and xml_parallel_loader. Any insights as to what specifically this steps do (solving of measures etc.) ? Also what we need to modify in terms of xml tag or anything else to improve these timings?
14:10:56 Started 6 Finished 5 out of 6 Tasks.
14:10:56 Running Jobs: AWXML$_4361_77872. Waiting for Tasks to Finish...
14:01:04 Started Auto Solve for Measures: TOT_AMT from Cube CR_BASE_OSUC.CUBE. 2008 Partition.
14:01:04 Finished Load of Measures: TOT_AMT from Cube CR_BASE_OSUC.CUBE. 2008 Partition. Processed 189616 Records. Rejected 0 Records.
Thanks,
SudipWhen we checked the scheduler jobs we saw xmlparallel_loader. in terms of v$session_wait we saw a db file sequential read. Following is a snapshot from the stage of finished updating partitions to starting of parallel load. Please advise.
XML_MESSAGE
14:49:12 Completed Build(Refresh) of AWM_CR2.CRICUBE Analytic Workspace.
14:49:12 Finished Parallel Processing.
14:49:10 Finished Auto Solve for Measures: TOT_AMT from Cube CR_BASE_OSUC.CUBE. 2008 Partition.
14:40:59 Started 6 Finished 5 out of 6 Tasks.
14:40:59 Running Jobs: AWXML$_4361_77872. Waiting for Tasks to Finish...
14:30:58 Started 6 Finished 5 out of 6 Tasks.
14:30:58 Running Jobs: AWXML$_4361_77872. Waiting for Tasks to Finish...
14:20:57 Running Jobs: AWXML$_4361_77872. Waiting for Tasks to Finish...
14:20:57 Started 6 Finished 5 out of 6 Tasks.
14:10:56 Running Jobs: AWXML$_4361_77872. Waiting for Tasks to Finish...
14:10:56 Started 6 Finished 5 out of 6 Tasks.
14:01:04 Started Auto Solve for Measures: TOT_AMT from Cube CR_BASE_OSUC.CUBE. 2008 Partition.
14:01:04 Finished Load of Measures: TOT_AMT from Cube CR_BASE_OSUC.CUBE. 2008 Partition. Processed 189616 Records. Rejected 0 Records.
14:01:02 Finished Auto Solve for Measures: TOT_AMT from Cube CR_BASE_FIN.CUBE. 2008 Partition.
14:01:00 Finished Load of Measures: TOT_AMT from Cube CR_BASE_FIN.CUBE. 2008 Partition. Processed 1494 Records. Rejected 0 Records.
14:01:00 Finished Auto Solve for Measures: TOT_AMT from Cube CR_CURR1_OSUC.CUBE. 200901 Partition.
14:01:00 Started Auto Solve for Measures: TOT_AMT from Cube CR_BASE_FIN.CUBE. 2008 Partition.
14:01:00 Finished Auto Solve for Measures: TOT_AMT from Cube CR_CURR1_ENR.CUBE. 200901 Partition.
14:01:00 Finished Auto Solve for Measures: TOT_AMT from Cube CR_CURR1_FIN.CUBE. 200901 Partition.
14:01:00 Finished Auto Solve for Measures: TOT_AMT from Cube CR_BASE_ENR.CUBE. 2008 Partition.
14:00:58 Finished Load of Measures: TOT_AMT from Cube CR_CURR1_FIN.CUBE. 200901 Partition. Processed 1494 Records. Rejected 0 Records.
14:00:58 Started Auto Solve for Measures: TOT_AMT from Cube CR_CURR1_FIN.CUBE. 200901 Partition.
14:00:58 Finished Load of Measures: TOT_AMT from Cube CR_BASE_ENR.CUBE. 2008 Partition. Processed 1577 Records. Rejected 0 Records.
14:00:58 Started Load of Measures: TOT_AMT from Cube CR_CURR1_OSUC.CUBE. 200901 Partition.
14:00:58 Finished Load of Measures: TOT_AMT from Cube CR_CURR1_OSUC.CUBE. 200901 Partition. Processed 4521 Records. Rejected 0 Records.
14:00:58 Started Auto Solve for Measures: TOT_AMT from Cube CR_CURR1_OSUC.CUBE. 200901 Partition.
14:00:58 Started Load of Measures: TOT_AMT from Cube CR_CURR1_FIN.CUBE. 200901 Partition.
14:00:58 Started Load of Measures: TOT_AMT from Cube CR_BASE_ENR.CUBE. 2008 Partition.
14:00:58 Started Auto Solve for Measures: TOT_AMT from Cube CR_CURR1_ENR.CUBE. 200901 Partition.
14:00:58 Finished Load of Measures: TOT_AMT from Cube CR_CURR1_ENR.CUBE. 200901 Partition. Processed 1577 Records. Rejected 0 Records.
14:00:58 Started Load of Measures: TOT_AMT from Cube CR_CURR1_ENR.CUBE. 200901 Partition.
14:00:58 Started Auto Solve for Measures: TOT_AMT from Cube CR_BASE_ENR.CUBE. 2008 Partition.
14:00:58 Started Load of Measures: TOT_AMT from Cube CR_BASE_FIN.CUBE. 2008 Partition.
14:00:58 Started Load of Measures: TOT_AMT from Cube CR_BASE_OSUC.CUBE. 2008 Partition.
14:00:57 Attached AW AWM_CR2.CRICUBE in MULTI Mode.
14:00:57 Attached AW AWM_CR2.CRICUBE in MULTI Mode.
14:00:57 Attached AW AWM_CR2.CRICUBE in MULTI Mode.
14:00:57 Attached AW AWM_CR2.CRICUBE in MULTI Mode.
14:00:57 Attached AW AWM_CR2.CRICUBE in MULTI Mode.
14:00:57 Attached AW AWM_CR2.CRICUBE in MULTI Mode.
14:00:55 Running Jobs: AWXML$_4361_77870, AWXML$_4361_77871, AWXML$_4361_77872, AWXML$_4361_77873.
14:00:55 Started 4 Finished 0 out of 6 Tasks.
14:00:55 Running Jobs: AWXML$_4361_77870, AWXML$_4361_77871, AWXML$_4361_77872, AWXML$_4361_77873, AWXML$_4361_77874.
14:00:55 Started 6 Finished 0 out of 6 Tasks.
14:00:55 Running Jobs: AWXML$_4361_77870, AWXML$_4361_77871, AWXML$_4361_77872, AWXML$_4361_77873, AWXML$_4361_77874, AWXML$_4361_77875.
14:00:55 Started 6 Finished 0 out of 6 Tasks.
14:00:55 Running Jobs: AWXML$_4361_77870, AWXML$_4361_77871, AWXML$_4361_77872, AWXML$_4361_77873, AWXML$_4361_77874, AWXML$_4361_77875. Waiting for Tasks to Finish...
14:00:55 Running Jobs: AWXML$_4361_77870, AWXML$_4361_77871, AWXML$_4361_77872.
14:00:55 Started 3 Finished 0 out of 6 Tasks.
14:00:55 Running Jobs: AWXML$_4361_77870, AWXML$_4361_77871.
14:00:55 Started 2 Finished 0 out of 6 Tasks.
14:00:55 Running Jobs: AWXML$_4361_77870.
14:00:55 Started 1 Finished 0 out of 6 Tasks.
14:00:55 Starting Parallel Processing.
14:00:55 Detached AW AWM_CR2.CRICUBE.
14:00:55 Started 5 Finished 0 out of 6 Tasks.
14:00:22 Finished Updating Partitions.
Maybe you are looking for
-
How Distinguish planning data and Actual data in a Planning cube
Hi, I want to dispaly planning data & actaul data in a query how can i do it? in my query it is showing all the requests it is not distinguishing.
-
Exception OBJECTS_OBJREF_NOT_ASSIGNED with MDM ABAP API
Hello, Using IF_MDM_CORE_SERVICES~RETRIEVE_SIMPLE or IF_MDM_CORE_SERVICES~QUERY from class interface CL_MDM_ABSTRACT_PROVIDER, i got exception OBJECTS_OBJREF_NOT_ASSIGNED. For IF_MDM_CORE_SERVICES~QUERY method, i am unable, in all cases, to get impor
-
Hi, I just created a user by this : BEGIN fnd_user_pkg.CreateUser( x_user_name => 'MYUSER', x_owner => 'CUST', x_unencrypted_password => 'WELLCOM', x_description => 'new_desc2', x_email_address => 'new_email2', x_fax => 'new_fax2'); end; but when con
-
Error occured while processing request
I get a screen that says coldfusion.sql.DatabaseConnectionException: Timed out trying to establish connection The error occured in A:\display\wroot\webs\D_Systems\SimpleFORM\formstatus.cfm: line 7 7: data source="simpleFORMdatabase" Can someone expla
-
Wth? dl'd $100 in music last week
wth? dl'd $100 in music last week...and ITunes can't locate files? WIndows8