You are viewing limited content. For full access, please sign in.

Question

Question

How to Update Retention schedule information..??

asked on January 23, 2015

I am getting error while updating the retention schedule informatin to laserfiche.In below line i m getting the error "dispositionScheduleInfo.RemoveTransfer(transferInfo.Index);".i have included  code block for updating retention schedule.Please check let me know if any modifications required..

        public static int UpdateDispositionScheduleAction(List<DispositionSchedule> listDispositionSchedule, List<DispositionTransferInfo> listDispositionTransfer, out int status)
        {
            status = 0;
          Session session = Connect(ServerName, RepositoryName);
            Laserfiche.RepositoryAccess.Records.RetentionInstructions retentionInst = new Laserfiche.RepositoryAccess.Records.RetentionInstructions();

            DispositionScheduleInfo dispositionScheduleInfo = new DispositionScheduleInfo();
            var dispositionScheduleList = listDispositionSchedule[0];
            dispositionScheduleInfo.Name = dispositionScheduleList.Name;
            dispositionScheduleInfo.Description = dispositionScheduleList.Description;
            dispositionScheduleInfo.RetentionMonths = dispositionScheduleList.RetentionMonths;
            Laserfiche.RepositoryAccess.Records.DispositionType finalDispositionType = new Laserfiche.RepositoryAccess.Records.DispositionType();
            const Laserfiche.RepositoryAccess.Records.RetentionInstructions retentionInstructions = Laserfiche.RepositoryAccess.Records.RetentionInstructions.RetainMetadataOnly;

            try
            {
                switch (dispositionScheduleList.FinalDisposition.ToString())
                {
                    case "Accession":
                        finalDispositionType = Laserfiche.RepositoryAccess.Records.DispositionType.Accession;
                        break;
                    case "Destroy":
                        finalDispositionType = Laserfiche.RepositoryAccess.Records.DispositionType.Destroy;
                        break;
                    case "None":
                        finalDispositionType = Laserfiche.RepositoryAccess.Records.DispositionType.None;
                        break;

                }
                foreach (var transferInfo in listDispositionTransfer)
                {

                    switch (transferInfo.Instructions.ToString())
                    {
                        case "RetainMetadataOnly":
                            retentionInst = Laserfiche.RepositoryAccess.Records.RetentionInstructions.RetainMetadataOnly;
                            break;
                        case "Delete":
                            retentionInst = Laserfiche.RepositoryAccess.Records.RetentionInstructions.Delete;
                            break;
                        case "RetainAll":
                            retentionInst = Laserfiche.RepositoryAccess.Records.RetentionInstructions.RetainAll;
                            break;
                        case "NotConfigured":
                            retentionInst = Laserfiche.RepositoryAccess.Records.RetentionInstructions.NotConfigured;
                            break;

                    }
                    dispositionScheduleInfo.RemoveTransfer(transferInfo.Index);
                    dispositionScheduleInfo.AddTransfer(transferInfo.LocationId, transferInfo.RetentionMonths, retentionInst, transferInfo.Description);
                }
                dispositionScheduleInfo.SetFinalDisposition(finalDispositionType, retentionInstructions);
                
                Laserfiche.RepositoryAccess.Records.DispositionSchedule.Update(dispositionScheduleList.Name, dispositionScheduleInfo, session);

                if (dispositionScheduleInfo.Id > 0)
                    status = 1;
                return dispositionScheduleInfo.Id;
            }
            finally
            {
                session.LogOut();
            }
        }

 

0 0

Replies

replied on January 23, 2015

Just taking a stab in the dark here, but don't you need to use the .Transfers property to get a transfercollection so that you can determine the index of the interim transfer you are trying to modify?

 

I found this by looking in the Laserfiche SDK 9.0 .NET help file, searching DispositionScheduleInfo and DispositionScheduleInfo.Transfers

 

I only pretend to be a programmer on occasion, so I'm really just looking at the code and trying to figure it out for myself. laugh

 

 

0 0
You are not allowed to follow up in this post.

Sign in to reply to this post.