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

  • Setting up Task Dependencies

    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 Spier

    If 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
    Thanks

    Complete 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: &#39;Error in WSDL access for task ID &quot;00000000000000000021&quot;; read the long text&#39;</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: &#39;error_text&#39
    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 &lt;&gt; 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 &lt;&gt; 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(&amp;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 &lt; 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 &lt; 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 = &amp;H30000
    Public Const MM_WIM_DATA = &amp;H3C0
    Public Const WHDR_DONE = &amp;H1 ' done bit
    Public Const GMEM_FIXED = &amp;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 = &amp;H3&amp;
    Public Const MIXER_GETCONTROLDETAILSF_VALUE = &amp;H0&amp;
    Public Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &amp;H2&amp;
    Public Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &amp;H0&amp;
    Public Const MIXERLINE_COMPONENTTYPE_SRC_FIRST = &amp;H1000&amp;
    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 = &amp;H50000000
    Public Const MIXERCONTROL_CT_UNITS_UNSIGNED = &amp;H30000
    Public Const MIXERCONTROL_CT_UNITS_SIGNED = &amp;H20000
    Public Const MIXERCONTROL_CT_CLASS_METER = &amp;H10000000
    Public Const MIXERCONTROL_CT_SC_METER_POLLED = &amp;H0&amp;
    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(&amp;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(&amp;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 &lt;&gt; 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 &lt;&gt; 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 &lt;&gt; 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,
    Fernando

    Hi 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

  • What is the procedure/code in VBA for passing the calc scripts dynamically based on the selection.

    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
    Saurabh

    Hi 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
    Hans

    Hi,
    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
    Raghul

    Hi 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 advance

    Hi,
    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

  • Reminder for tasks

    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
    Tobias

    Hello 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,
    Sudip

    When 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

  • Login failed

    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