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

দুটি পথ, একটি কার্যকর পৃষ্ঠা

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

কার্যকর পৃষ্ঠাটিকে কেবল প্রমাণীকরণ ও পৌঁছানোর প্রমাণ হিসেবে ধরুন। এটি প্রমাণ করে যে অ্যাকাউন্টটি রিপোর্ট সার্ভারে পৌঁছাতে পারে এবং পোর্টাল HTML এগিয়ে দেয়। এটি ফাইল প্রতিক্রিয়া, কনটেন্ট ডিসপোজিশন হেডার বা এমন রিডাইরেক্ট সম্পর্কে কিছুই বলে না যা নথিতে নয়, ডাউনলোডে শেষ হয়।

একই কারণে এক্সপোর্ট পথটিকে আলাদাভাবে তুলনা করা উচিত, ইতিমধ্যে কাজ করা পৃষ্ঠাটি আবার পরীক্ষা করার বদলে। যে দুটি অনুরোধ একটি সেশন ভাগ করে, তারা এখনও দুটি অনুরোধ।

তিনটি শর্ত যা ঠিক করে এক্সপোর্ট কোথায় ভাঙে

তিনটি প্রশ্ন দ্রুত ত্রুটির স্থান নির্ধারণ করে, এবং প্রতিটি উত্তর ভিন্ন মালিকের দিকে ইশারা করে।

প্রথমত, একই রিপোর্ট, অ্যাকাউন্ট ও ফরম্যাট কি অভ্যন্তরীণ নেটওয়ার্ক থেকে সঠিকভাবে এক্সপোর্ট হয়? যদি হয়, তবে রিপোর্ট সার্ভার ও তার রেন্ডারার ঠিক আছে এবং পার্থক্যটি প্রবেশ পথে। দ্বিতীয়ত, ব্যর্থ প্রতিক্রিয়াটি কি ফাইল কনটেন্ট টাইপ বহন করে, নাকি ফাইল এক্সটেনশন পরা একটি HTML পৃষ্ঠা? এটি রেন্ডারার ত্রুটিকে পোর্টালের প্রতিস্থাপন থেকে আলাদা করে। তৃতীয়ত, পোর্টাল কি অনুরোধের URL পুনর্লিখন করে বা প্রতিক্রিয়া থেকে হেডার ছিনিয়ে নেয়? পুনর্লিখিত URL সম্পূর্ণ ভিন্ন একটি এন্ডপয়েন্টে পৌঁছাতে পারে।

কোনো সেটিং পরিবর্তনের আগে তিনটিরই উত্তর দিন, কারণ প্রতিটির ভিন্ন প্রতিকার আছে। রেন্ডারার ত্রুটি রিপোর্ট সার্ভারের, প্রতিস্থাপিত বডি পোর্টালের, আর ছিনিয়ে নেওয়া হেডার ত্রুটি নয়, নীতি প্রশ্ন।

উত্তরগুলো লিখে রাখুন। ওই তিন লাইন থেকে গড়া একটি সাপোর্ট কেস দশটি স্ক্রিনশটের সমান।

স্ট্যাটাস কোডের বদলে এক্সপোর্ট প্রতিক্রিয়া পড়ুন

HTTP সফল স্ট্যাটাস কেবল প্রমাণ করে যে কিছু একটি অনুরোধের উত্তর দিয়েছে। বডি ও হেডার একসাথে পরীক্ষা করুন, কারণ আকর্ষণীয় ব্যর্থতা হলো ভুল কনটেন্ট বহনকারী একটি সফল প্রতিক্রিয়া।

curl -sS -D export.headers -o export.bin --location "https://portal.example.com/reports/export?format=xlsx"
file export.bin
head -c 300 export.bin

হেডার ডাম্প কনটেন্ট টাইপ এবং পোর্টাল যে কনটেন্ট ডিসপোজিশন ফিরিয়েছে তা দেখায়। file কমান্ড বডিটি আসলে কী তা শনাক্ত করে, আর যেখানে স্প্রেডশিট প্রত্যাশিত সেখানে একটি টেক্সট ফাইল হলো ক্লাসিক প্রতিস্থাপিত সাইন-ইন পৃষ্ঠা। head কমান্ড একটি সম্পূর্ণ রিপোর্ট টার্মিনালে না ঢেলে HTML চেনার মতো যথেষ্ট দেখায়।

এর যেকোনো অংশ শেয়ার করার আগে সেশন কুকি ও টোকেন মুছে ফেলুন। কার্যকর এক্সপোর্টের ক্যাপচার দরকারি প্রমাণ, আর অন্যের সেশনের ক্যাপচার একটি ঘটনা।

ব্যতিক্রমটিকে অ্যাকাউন্টে নয়, অ্যাপ্লিকেশনে সীমাবদ্ধ করুন

যদি পোর্টাল প্রতিক্রিয়াটি পুনর্লিখন বা ব্লক করে, তবে প্রলোভনময় সমাধান হলো পুরো সাইটটি ছাড় দিয়ে দেওয়া বা রিপোর্টটিকে বেনামি করা। দুটোই ডাউনলোড ঠিক করে এবং পোর্টালটির থাকার কারণ সরিয়ে দেয়। সীমাবদ্ধ ব্যতিক্রম একটি অ্যাপ্লিকেশন পথ, একটি কনটেন্ট টাইপ ও একটি দিক নাম দেয়, এবং যিনি নীতির মালিক তার কাছে এটি পর্যালোচনাযোগ্য থাকে।

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

যদি ব্যতিক্রমটিকে এত সংকীর্ণভাবে সীমাবদ্ধ করা না যায়, তবে এক্সপোর্ট সম্ভবত পোর্টালের পেছনে নয়, ভিন্ন প্রবেশ পদ্ধতিসহ অভ্যন্তরীণ পথে থাকা উচিত। সাইটব্যাপী ছাড় পোর্টাল মালিকের সিদ্ধান্ত, একটি রিপোর্টের জন্য কোনো অস্থায়ী সমাধান নয়।

সেভ ডায়ালগ নয়, এক্সপোর্ট গ্রহণ করুন

শেষ পরীক্ষা হলো ফাইলটি নিজেই: এটি খোলে, প্রত্যাশিত কলাম ধরে রাখে, এবং এর মোটগুলো ব্যবহারকারীর অনুমোদিত রিপোর্টের সাথে মেলে।

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

ব্যবহারকারীর যে কর্মপ্রবাহ দরকার ছিল তা গ্রহণ করুন, তার চেয়ে কম নয়। ভুল অ্যাপ্লিকেশনে খোলা ডাউনলোডও একটি ব্যর্থ এক্সপোর্ট।

সম্পর্কিত নিবন্ধ