এসএসআইএস স্ক্রিপ্ট উপাদান - আউটপুট0 বাফারকে কীভাবে পরিবর্তন করতে হয়


10

আমার কাছে একটি স্ক্রিপ্ট উপাদান রয়েছে যা এসকিউএল অ্যাজুরি ডাটাবেস টেবিল থেকে রেকর্ড গ্রহণ করে। এরপরে স্ক্রিপ্টটি একটি ওয়েব পরিষেবাকে আহ্বান করে, যা ব্যর্থতার সংখ্যা এবং সাফল্যের রেকর্ড দেয়।

সমস্ত রেকর্ডের জন্য, আমি স্থিতি ক্ষেত্রটি যুক্ত করতে চাই যা হয় "সাফল্য" বা "ব্যর্থ" এবং এটি স্ক্রিপ্ট উপাদান থেকে আউটপুট পায়।

আমি তখন সেই আউটপুটটিকে একটি পাঠ্য ফাইলে লগ করি।

সমস্যা: আমি প্রতিটি ইনপুট রেকর্ডের জন্য স্থিতি যুক্ত করতে পারছি না যেহেতু ওয়েব সার্ভিস কল কেবল পোস্ট এক্সিকিউটে হয়।

আমি এটি চেষ্টা করেছি কিন্তু এখনও কাজ করে না:

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
         listOfData.Add(new ClockData 
         {
             TimeClockID=Row.TimeClockID,
             PersonID=Row.EmployeeCode,
             LocationCode=Row.ClockInServiceContextID,
             ClockInDateTime=Row.ClockInDateTime,
             ClockOutDateTime=Row.ClockOutDateTime

         });
 }

 public override void CreateNewOutputRows()
 {
     MessageBox.Show("Test CreateNewOutputRows");
     MessageBox.Show(listOfData.Count.ToString());
     foreach (var item in listOfData)
     {
         Output0Buffer.AddRow();
         Output0Buffer.EmployeeCode = item.PersonID;
         MessageBox.Show(item.PersonID);
     }
 }

1
প্রসেসিনপ্রোয়ের সময় আপনি কেন ওয়েব পরিষেবা কল চালাবেন না? সমস্ত ডেটা পাইপলাইনটি একবারে সেই পদ্ধতিটি শেষ হয়ে যাওয়ার পরে ইতিমধ্যে নেমে গেছে। আপনি আপনার স্থানীয় ভেরিয়েবলে ডেটা সংগ্রহ করছেন তবে এই মুহুর্তে এটি এমন কোনও গাড়িটির ছবি ধারণ করার মতো যা কেবল দূরে সরিয়ে নিয়ে গেছে-হ্যাঁ, এটি দেখতে দেখতে ভালই লাগছিল কিন্তু ফিরে আসছে না
বিলিংক

@ ফ্লাইবাইট: আমার উত্তরে কিছু কার্যকর?
মেরিয়ান

উত্তর:


6

ট্রান্সফর্মেশনের সমস্ত কিছুই ইনপুট0_প্রসেস ইনপুট-র মধ্যে সম্পন্ন হয় সমাধানটি মূলত হবে

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
         listOfData.Add(new ClockData 
         {
             TimeClockID=Row.TimeClockID,
             PersonID=Row.EmployeeCode,
             LocationCode=Row.ClockInServiceContextID,
             ClockInDateTime=Row.ClockInDateTime,
             ClockOutDateTime=Row.ClockOutDateTime
         });
         Output0Buffer.AddRow();
         Output0Buffer.EmployeeCode = item.PersonID;
         MessageBox.Show(item.PersonID);
}

আপনি পোস্টএকসিকিউটে আউটপুট পদক্ষেপগুলি সম্পাদন করতে সক্ষম হতে পারেন, ক্রিয়েটনিউউউটপুটগুলি রূপান্তরকরণে চালিত হয় না, কেবল গন্তব্য স্ক্রিপ্টগুলিতে।


3

আমি এসএসআইএসে খুব দক্ষ না, তবে আমি মনে করি যে আপনি নিম্নলিখিত ধারণাগুলি চেষ্টা করতে পারেন:

  • স্ক্রিপ্ট উপাদান যান এবং এটি সম্পাদনা,
  • বিভাগ ইনপুট এবং আউটপুটগুলিতে যান (তৃতীয় বিভাগ),
  • আউটপুট0 - আউটপুট কলামে যান,
  • একটি নতুন কলাম যুক্ত করুন (এটিকে একটি নাম দিন এবং প্রকার দিন, আসুন স্ট্যাটাস - বুলিয়ান)।

তারপরে আপনার আউটপুটটিতে খালি কলামটি থাকবে এবং আপনার প্রতিটি ইনপুট সারিগুলির জন্য কিছু ডেটা দিয়ে এটি তৈরি করতে হবে:

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
    Row.Status = IIf(String.IsNullOrEmpty(rowValues.GetValue(1).ToString()), 0, 1)

এটি আপনাকে আপনার আউটপুট সারণিতে স্থিতি কলাম যুক্ত করতে সহায়তা করবে। আশা করি এটিই আপনি চেয়েছিলেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.