પ્લેઇડ એકીકરણ સમસ્યાઓને સંબોધવા માટે ટાઇપસ્ક્રીપ્ટમાં "સ્ટેટસ કોડ 400 સાથે વિનંતી નિષ્ફળ" ફિક્સિંગ

પ્લેઇડ એકીકરણ સમસ્યાઓને સંબોધવા માટે ટાઇપસ્ક્રીપ્ટમાં સ્ટેટસ કોડ 400 સાથે વિનંતી નિષ્ફળ ફિક્સિંગ
પ્લેઇડ એકીકરણ સમસ્યાઓને સંબોધવા માટે ટાઇપસ્ક્રીપ્ટમાં સ્ટેટસ કોડ 400 સાથે વિનંતી નિષ્ફળ ફિક્સિંગ

પ્લેઇડ ટ્રાન્ઝેક્શન એકીકરણમાં સામાન્ય ભૂલોને ડિબગ કરવું

આધુનિક બેંકિંગ એપ્લિકેશન બનાવવા માટે ઘણીવાર વપરાશકર્તાઓને તેમના બેંક એકાઉન્ટ્સ અને વ્યવહારોને ઍક્સેસ કરવાની સીમલેસ રીત પ્રદાન કરવા માટે પ્લેઇડ જેવા API ને એકીકૃત કરવાનો સમાવેશ થાય છે. જો કે, આ મુસાફરી જેટલી રોમાંચક છે, તે પડકારો વિનાની નથી. એક સામાન્ય અવરોધ વિકાસકર્તાઓનો સામનો કરવો પડે છે તે કુખ્યાત "સ્ટેટસ કોડ 400 સાથે વિનંતી નિષ્ફળ" ભૂલ છે જ્યારે વપરાશકર્તા વ્યવહારો મેળવવાનો પ્રયાસ કરે છે. 😓

આની કલ્પના કરો: તમે સફળતાપૂર્વક યુઝર કનેક્શન્સ સેટ કર્યા છે, એકીકરણની ચકાસણી કરી છે અને આતુરતાપૂર્વક તમારો પહેલો ટ્રાન્ઝેક્શન ફેચ કૉલ ચલાવ્યો છે, ફક્ત આ ક્રિપ્ટિક ભૂલ સાથે સ્વાગત કરવા માટે. જ્યારે તમે ગતિ પ્રાપ્ત કરી રહ્યાં હોવ ત્યારે જ તે કોઈ રોડ બ્લોકને મારવા જેવું લાગે છે. પરંતુ ચિંતા કરશો નહીં - હંમેશા આગળનો રસ્તો છે.

આના જેવી ભૂલો ઘણીવાર ખોટી પેરામીટર્સ, ગુમ થયેલ ટોકન્સ અથવા મેળ ન ખાતા ડેટા ફોર્મેટ જેવી દેખીતી નાની સમસ્યાઓથી ઊભી થાય છે. તેમને ડિબગ કરવું ભારે પડી શકે છે, ખાસ કરીને જ્યારે તમે પ્રથમ વખત જટિલ સંકલન નેવિગેટ કરી રહ્યાં હોવ. જો કે, યોગ્ય અભિગમ અને થોડી ધીરજ સાથે, આ ભૂલોને ઘણીવાર અસરકારક રીતે ઉકેલી શકાય છે. 🚀

આ લેખમાં, અમે "સ્ટેટસ કોડ 400 સાથે વિનંતિ નિષ્ફળ" ભૂલનું પગલું-દર-પગલું વિચ્છેદન કરીશું, પ્રદાન કરેલ TypeScript કોડમાં તેના સંભવિત કારણોને ઓળખીશું અને ઉકેલ તરફ માર્ગદર્શન આપીશું. પછી ભલે તમે શિખાઉ છો કે અનુભવી વિકાસકર્તા, આ માર્ગદર્શિકાનો હેતુ ડિબગીંગ પ્રક્રિયાને સરળ બનાવવા અને એક મજબૂત બેંકિંગ એપ્લિકેશન બનાવવામાં તમારી સહાય કરવાનો છે.

આદેશ ઉપયોગનું ઉદાહરણ
plaidClient.transactionsSync આ પદ્ધતિ Plaidના API માટે વિશિષ્ટ છે અને પેજીનેટેડ ફોર્મેટમાં વ્યવહારો પુનઃપ્રાપ્ત કરે છે. તે વપરાશકર્તાની નાણાકીય સંસ્થાને ઓળખવા અને ટ્રાન્ઝેક્શન અપડેટ્સ લાવવા માટે ઍક્સેસ_ટોકન સ્વીકારે છે.
response.data.added.map નવા ઉમેરાયેલા વ્યવહારો પર પુનરાવર્તિત કરવા અને તેમને કસ્ટમ ઑબ્જેક્ટ ફોર્મેટમાં રૂપાંતરિત કરવા માટે વપરાય છે. ફ્રન્ટ-એન્ડ વપરાશ માટે ટ્રાન્ઝેક્શન ડેટાની રચના કરવા માટે આ મહત્વપૂર્ણ છે.
process.env PLAID_CLIENT_ID અને PLAID_SECRET જેવા પર્યાવરણ ચલોને ઍક્સેસ કરે છે. આ સુનિશ્ચિત કરે છે કે સ્ક્રિપ્ટમાં ઓળખપત્રોને હાર્ડકોડ કર્યા વિના સંવેદનશીલ માહિતી સુરક્ષિત રીતે સંચાલિત થાય છે.
throw new Error જ્યારે API કૉલ નિષ્ફળ જાય છે ત્યારે સ્પષ્ટપણે ભૂલ ફેંકે છે, એ સુનિશ્ચિત કરે છે કે નિષ્ફળતાઓ એપ્લીકેશન વર્કફ્લોમાં યોગ્ય રીતે પકડાય છે અને નિયંત્રિત થાય છે.
setError જ્યારે ટ્રાન્ઝેક્શન ફેચ પ્રક્રિયામાં કોઈ સમસ્યા આવે ત્યારે UI માં ભૂલ સંદેશાઓને ગતિશીલ રીતે પ્રદર્શિત કરવા માટે ઉપયોગમાં લેવાતા પ્રતિક્રિયા રાજ્ય કાર્ય.
hasMore આનયન માટે વ્યવહારોના વધારાના પૃષ્ઠો છે કે કેમ તે તપાસવા માટે વપરાતો ધ્વજ. તે સુનિશ્ચિત કરે છે કે જ્યાં સુધી API પૂર્ણ થવાનો સંકેત ન આપે ત્યાં સુધી એપ્લિકેશન તમામ ઉપલબ્ધ ડેટાને લૂપમાં પુનઃપ્રાપ્ત કરે છે.
plaidClient પર્યાવરણ ચલો સાથે ગોઠવેલ પ્લેઇડ API ક્લાયંટનું ઉદાહરણ. આ ઑબ્જેક્ટ પ્લેઇડની સેવાઓ સાથે ક્રિયાપ્રતિક્રિયા કરવા માટેનું મુખ્ય સાધન છે.
setTransactions રિએક્ટ સ્ટેટ ફંક્શન કે જે ટ્રાન્ઝેક્શન સ્ટેટ એરેને અપડેટ કરે છે, એ સુનિશ્ચિત કરે છે કે UI એ API માંથી મેળવેલા નવીનતમ ડેટાને પ્રતિબિંબિત કરે છે.
transactions.push(...) લૂપમાં હાલની એરેમાં મેળવેલા વ્યવહારોને જોડે છે. આ ટ્રાન્ઝેક્શન ડેટાના અગાઉ મેળવેલા પૃષ્ઠોને ઓવરરાઇટ કરવાનું ટાળે છે.
category?.[0] વ્યવહારની પ્રથમ શ્રેણીને સુરક્ષિત રીતે ઍક્સેસ કરવા માટે વૈકલ્પિક ચેઇનિંગનો ઉપયોગ કરે છે. જ્યારે શ્રેણી અવ્યાખ્યાયિત અથવા શૂન્ય હોઈ શકે ત્યારે ભૂલોને અટકાવે છે.

TypeScript સાથે પ્લેઇડ એકીકરણની આંતરિક કામગીરીને સમજવી

પૂરી પાડવામાં આવેલ સ્ક્રિપ્ટો પ્લેડ API નો ઉપયોગ કરીને ટ્રાન્ઝેક્શન ડેટા પુનઃપ્રાપ્તિને હેન્ડલ કરવા માટે ડિઝાઇન કરવામાં આવી છે, જે એપ્લિકેશનમાં બેંકિંગ કાર્યક્ષમતાને એકીકૃત કરવા માટે એક શક્તિશાળી સાધન છે. ઉકેલના મૂળમાં છે વ્યવહારો સમન્વય પદ્ધતિ, જે પૃષ્ઠ ક્રમાંકિત રીતે વપરાશકર્તા વ્યવહાર અપડેટ્સ મેળવે છે. દ્વારા નિયંત્રિત લૂપનો ઉપયોગ કરીને વધુ છે ફ્લેગ, સ્ક્રિપ્ટ ખાતરી કરે છે કે તમામ ઉપલબ્ધ વ્યવહારો ક્રમિક API કૉલ્સમાં પુનઃપ્રાપ્ત કરવામાં આવે છે. આ અભિગમ કાર્યક્ષમ રહીને કોઈપણ વ્યવહાર અપડેટ્સ ગુમાવવાનું ટાળે છે. 🚀

લૂપના દરેક પુનરાવૃત્તિમાં, પુનઃપ્રાપ્ત ડેટાને કસ્ટમાઇઝ્ડ ટ્રાન્ઝેક્શન ઑબ્જેક્ટ બનાવવા માટે મેપિંગ ફંક્શનનો ઉપયોગ કરીને પ્રક્રિયા કરવામાં આવે છે. આ ઑબ્જેક્ટ ટ્રાન્ઝેક્શન ID, નામ, રકમ અને તારીખ જેવા ક્ષેત્રોને પ્રમાણિત કરે છે, જે આગળના છેડા માટે ડેટાને વધુ ઉપયોગી બનાવે છે. સ્ક્રિપ્ટની મુખ્ય વિશેષતા એ કેટેગરી જેવા ક્ષેત્રોને ઍક્સેસ કરતી વખતે વૈકલ્પિક ચેઇનિંગનો ઉપયોગ છે, તેની ખાતરી કરવી કે ડેટાની ગેરહાજરી ભૂલોનું કારણ નથી. આ ટેકનીક વિવિધ ડેટા સ્ત્રોતો સાથે કામ કરવામાં મજબૂત એરર હેન્ડલિંગ અને લવચીકતાનું મહત્વ દર્શાવે છે.

ફ્રન્ટ-એન્ડ બાજુએ, રિએક્ટનો ઉપયોગ એપ્લિકેશનની સ્થિતિનું સંચાલન કરવા અને વપરાશકર્તાની ક્રિયાપ્રતિક્રિયાઓને હેન્ડલ કરવા માટે થાય છે. fetchTransactions ફંક્શન getTransactions API ને કૉલ કરીને અને પરિણામો સાથે સ્ટેટ અપડેટ કરીને બેક એન્ડને યુઝર ઈન્ટરફેસ સાથે જોડે છે. જો આનયન દરમિયાન કોઈ ભૂલ થાય છે, તો તે ગતિશીલ રીતે અપડેટ કરાયેલ ભૂલ સંદેશ દ્વારા વપરાશકર્તાને આકર્ષક રીતે પ્રદર્શિત કરવામાં આવે છે. આ વપરાશકર્તા-કેન્દ્રિત અભિગમ "સ્ટેટસ કોડ 400 સાથે વિનંતી નિષ્ફળ" ભૂલ જેવી સમસ્યાઓને ડીબગ કરતી વખતે સરળ અનુભવની ખાતરી આપે છે.

સ્ક્રિપ્ટોને મોડ્યુલર અને ફરીથી વાપરી શકાય તેવું બનાવવા માટે, પર્યાવરણ વેરીએબલ સંવેદનશીલ માહિતી જેમ કે પ્લેઇડ ક્લાયન્ટ ID અને ગુપ્ત સંગ્રહ કરે છે. આ એપ્લિકેશનને સુરક્ષિત રાખે છે અને ઓળખપત્રોના આકસ્મિક સંપર્કને અટકાવે છે. વધુમાં, બેક એન્ડમાં એરર હેન્ડલિંગ અર્થપૂર્ણ સંદેશાઓને લોગ કરે છે અને વર્ણનાત્મક ભૂલો ફેંકી દે છે, જે સમસ્યાઓને ટ્રેસ કરવા અને ઉકેલવામાં સરળ બનાવે છે. સુરક્ષિત કોડિંગ પ્રેક્ટિસ, વિગતવાર ભૂલ પ્રતિસાદ અને વપરાશકર્તા-મૈત્રીપૂર્ણ ફ્રન્ટ એન્ડને સંયોજિત કરીને, પ્રદાન કરેલ સ્ક્રિપ્ટો તેમની એપ્લિકેશન્સમાં બેંકિંગ સુવિધાઓને એકીકૃત કરવા માંગતા વિકાસકર્તાઓ માટે એક વ્યાપક ઉકેલ પ્રદાન કરે છે. 😊

TypeScript બેંકિંગ એપ્લિકેશનમાં "સ્ટેટસ કોડ 400 સાથે વિનંતી નિષ્ફળ" ને સમજવું અને ઉકેલવું

આ સોલ્યુશન પ્લેઇડ એકીકરણ મુદ્દાઓ પર ધ્યાન કેન્દ્રિત કરીને, TypeScript નો ઉપયોગ કરીને વ્યવહારોનું સંચાલન કરવા માટે મોડ્યુલર અને સુરક્ષિત બેક-એન્ડ અભિગમ દર્શાવે છે.

import { Configuration, PlaidApi, PlaidEnvironments } from '@plaid/plaid';
const plaidClient = new PlaidApi(new Configuration({
  basePath: PlaidEnvironments.sandbox,
  baseOptions: {
    headers: {
      'PLAID-CLIENT-ID': process.env.PLAID_CLIENT_ID,
      'PLAID-SECRET': process.env.PLAID_SECRET,
    },
  },
}));
export const getTransactions = async (accessToken: string) => {
  let hasMore = true;
  let transactions: any[] = [];
  try {
    while (hasMore) {
      const response = await plaidClient.transactionsSync({
        access_token: accessToken,
      });
      transactions.push(...response.data.added.map(transaction => ({
        id: transaction.transaction_id,
        name: transaction.name,
        amount: transaction.amount,
        date: transaction.date,
        category: transaction.category?.[0] || 'Uncategorized',
      })));
      hasMore = response.data.has_more;
    }
    return transactions;
  } catch (error: any) {
    console.error('Error fetching transactions:', error.response?.data || error.message);
    throw new Error('Failed to fetch transactions.');
  }
};

પ્લેઇડ API એકીકરણમાં ભૂલ હેન્ડલિંગને માન્ય કરી રહ્યું છે

આ સોલ્યુશન રીએક્ટ અને ટાઈપસ્ક્રીપ્ટનો ઉપયોગ કરીને ડાયનેમિક UI ફીડબેક મિકેનિઝમ સાથે ફ્રન્ટએન્ડ એરર હેન્ડલિંગ ઉમેરે છે.

import React, { useState } from 'react';
import { getTransactions } from './api';
const TransactionsPage: React.FC = () => {
  const [transactions, setTransactions] = useState([]);
  const [error, setError] = useState('');
  const fetchTransactions = async () => {
    try {
      const accessToken = 'user_access_token_here';
      const data = await getTransactions(accessToken);
      setTransactions(data);
      setError('');
    } catch (err) {
      setError('Unable to fetch transactions. Please try again later.');
    }
  };
  return (
    <div>
      <h1>Your Transactions</h1>
      {error && <p style={{ color: 'red' }}>{error}</p>}
      <button onClick={fetchTransactions}>Fetch Transactions</button>
      <ul>
        {transactions.map(txn => (
          <li key={txn.id}>
            {txn.name} - ${txn.amount} on {txn.date}
          </li>
        ))}
      </ul>
    </div>
  );
};
export default TransactionsPage;

પ્લેઇડ એકીકરણમાં API ભૂલ હેન્ડલિંગમાં સુધારો

પ્લેઇડ જેવા API ને એકીકૃત કરતી વખતે, ખાસ કરીને 400 જેવા HTTP સ્ટેટસ કોડ્સ માટે, એક પાસું ઘણીવાર અવગણવામાં આવે છે તે મજબૂત ભૂલ હેન્ડલિંગ છે. આ સ્ટેટસ કોડ, જેને સામાન્ય રીતે "ખરાબ વિનંતી" તરીકે ઓળખવામાં આવે છે, તે સામાન્ય રીતે સૂચવે છે કે સર્વરને મોકલવામાં આવેલી વિનંતી અમાન્ય છે. બેંકિંગ એપ્લિકેશનના સંદર્ભમાં, આનો અર્થ ગુમ થયેલ અથવા ખોટી રીતે ફોર્મેટ કરેલ પરિમાણો જેવા કે ઍક્સેસ_ટોકન. આને સંબોધવા માટે API ને વિનંતીઓ મોકલતા પહેલા તમામ ઇનપુટ્સ માન્ય છે તેની ખાતરી કરવી જરૂરી છે. ઉદાહરણ તરીકે, ટોકનમાં નલ અથવા અવ્યાખ્યાયિત મૂલ્યો તપાસવા માટે યુટિલિટી ફંક્શનનો ઉપયોગ કરવાથી સ્ત્રોત પર આવી ભૂલોને અટકાવી શકાય છે. ✅

અન્ય નિર્ણાયક વિચારણા એ API દર મર્યાદાઓ અને સમયસમાપ્તિને અસરકારક રીતે હેન્ડલ કરવી છે. જો બહુવિધ વપરાશકર્તાઓ એકસાથે વ્યવહારો મેળવતા હોય, તો અસ્થાયી નિષ્ફળતાઓ અથવા સમયસમાપ્તિ માટે ફરીથી પ્રયાસ કરવાની પદ્ધતિ અમલમાં મૂકવી આવશ્યક છે. Axios જેવી લાઇબ્રેરીઓ પુનઃપ્રયાસોને ગોઠવવા માટે બિલ્ટ-ઇન સુવિધાઓ પ્રદાન કરે છે, તે સુનિશ્ચિત કરે છે કે તમારી એપ્લિકેશન મહત્તમ વપરાશ દરમિયાન પણ પ્રતિભાવશીલ રહે છે. ઘાતાંકીય બેકઓફ સાથે યોગ્ય પુનઃપ્રયાસોને જોડીને, તમે સતત ડેટા પુનઃપ્રાપ્તિ સુનિશ્ચિત કરતી વખતે જબરજસ્ત Plaid's API ના જોખમને ઘટાડી શકો છો. 🚀

છેલ્લે, વિગતવાર લોગીંગ મિકેનિઝમ તમારી ડીબગીંગ પ્રક્રિયાને નોંધપાત્ર રીતે વધારી શકે છે. દાખલા તરીકે, ભૂલ પ્રતિસાદ અને મૂળ વિનંતી વિગતો બંનેને કેપ્ચર કરવાથી સમસ્યાને વધુ અસરકારક રીતે નિર્દેશ કરવામાં મદદ મળી શકે છે. દરેક વપરાશકર્તા અથવા વિનંતી માટે અનન્ય ઓળખકર્તાઓ સાથે સંરચિત લૉગ્સ ઉમેરવાથી ઉત્પાદનમાં ભૂલોનું સરળ ટ્રેકિંગ સક્ષમ બને છે. આ પગલાં માત્ર એપની વિશ્વસનીયતામાં સુધારો જ નથી કરતા પણ તેમના બેંકિંગ ડેટાને સુરક્ષિત અને અસરકારક રીતે હેન્ડલ કરવામાં આવે છે તેની ખાતરી કરીને વપરાશકર્તાનો વિશ્વાસ પણ બનાવે છે. 😊

પ્લેઇડ API એકીકરણ વિશે સામાન્ય પ્રશ્નો

  1. "સ્થિતિ કોડ 400 સાથે વિનંતી નિષ્ફળ" નો અર્થ શું છે?
  2. આ ભૂલનો અર્થ એ છે કે સર્વરે અમાન્ય પરિમાણોને કારણે વિનંતીને નકારી કાઢી છે. તમારી ખાતરી કરો access_token માન્ય છે અને API કૉલ સિન્ટેક્સ સાચો છે.
  3. હું પ્લેઇડ API સાથે સમસ્યાઓ કેવી રીતે ડીબગ કરી શકું?
  4. જેવી વિગતો સહિત, સંપૂર્ણ ભૂલ પ્રતિસાદને લૉગ કરીને પ્રારંભ કરો response.data અને response.status. ગુમ થયેલ અથવા ખોટા પરિમાણોને ઓળખવા માટે આ લોગનો ઉપયોગ કરો.
  5. API દર મર્યાદાઓને હેન્ડલ કરવા માટે શ્રેષ્ઠ પ્રયાસો શું છે?
  6. Axios ઇન્ટરસેપ્ટરનો ઉપયોગ કરીને પુનઃપ્રયાસોનો અમલ કરો. પુનઃપ્રયાસો વચ્ચે થોભાવવા અને API ને વધુ પડતા ટાળવા માટે ઘાતાંકીય બેકઓફ વ્યૂહરચના ઉમેરો.
  7. હું કેવી રીતે માન્ય કરી શકું access_token API વિનંતીઓ મોકલતા પહેલા?
  8. માં નલ, અવ્યાખ્યાયિત અથવા ખાલી સ્ટ્રિંગ મૂલ્યો તપાસવા માટે ઉપયોગિતા ફંક્શન બનાવો access_token અને જો તે અમાન્ય હોય તો ભૂલ ફેંકી દો.
  9. શું હું લાઇવ વપરાશકર્તા ડેટા વિના પ્લેઇડ એકીકરણનું પરીક્ષણ કરી શકું?
  10. હા, પ્લેઇડ ઓફર કરે છે Sandbox પર્યાવરણ જ્યાં તમે પરીક્ષણ હેતુઓ માટે ભૂલ પ્રતિસાદો સહિત વિવિધ દૃશ્યોનું અનુકરણ કરી શકો છો.

પ્લેઇડ ટ્રાન્ઝેક્શન્સમાં એકીકરણ પડકારોનું નિરાકરણ

બેંકિંગ એપ્લિકેશન બનાવવા માટે ઘણીવાર અમાન્ય API વિનંતીઓને હેન્ડલ કરવા જેવી જટિલ સમસ્યાઓ ઉકેલવાનો સમાવેશ થાય છે. યોગ્ય પરિમાણ માન્યતા અને મજબૂત ભૂલ અહેવાલની ખાતરી કરીને, વિકાસકર્તાઓ વધુ વિશ્વસનીય એપ્લિકેશનો બનાવી શકે છે. સ્ટ્રક્ચર્ડ લૉગ્સ અને પુનઃપ્રયાસ મિકેનિઝમ્સ ઉમેરવાથી ડિબગિંગ કાર્યક્ષમતામાં પણ સુધારો થાય છે. 🚀

જ્યારે સ્ટેટસ કોડ 400 જેવી ભૂલો થાય છે, ત્યારે તે ઘણીવાર ખોટી ગોઠવણીઓ અથવા ગુમ થયેલ ઇનપુટ્સને હાઇલાઇટ કરે છે. સુરક્ષિત કોડિંગ પ્રેક્ટિસ અને યોગ્ય ફ્રન્ટ-એન્ડ ફીડબેક મિકેનિઝમ અપનાવીને, આવા પડકારોનો અસરકારક રીતે સામનો કરી શકાય છે. આ અભિગમ માત્ર ભૂલોને જ સુધારતો નથી પણ તમારી એપ્લિકેશનમાં વપરાશકર્તાનો વિશ્વાસ પણ વધારે છે.

સ્ત્રોતો અને સંદર્ભો
  1. આ લેખની સામગ્રીને પ્લેઇડના અધિકૃત API દસ્તાવેજો દ્વારા જાણ કરવામાં આવી હતી, જે એપ્લિકેશન્સમાં પ્લેઇડને એકીકૃત કરવા પર વ્યાપક માર્ગદર્શન આપે છે. તેને અહીં ઍક્સેસ કરો: પ્લેઇડ API દસ્તાવેજીકરણ .
  2. JavaScript અને TypeScript માં HTTP વિનંતીઓ અને ભૂલ પ્રતિસાદોને હેન્ડલ કરવા માટે Axios લાઇબ્રેરી દસ્તાવેજીકરણમાંથી વધારાની આંતરદૃષ્ટિ મેળવવામાં આવી હતી. તેને તપાસો: Axios દસ્તાવેજીકરણ .
  3. એરર હેન્ડલિંગ અને TypeScript એકીકરણમાં શ્રેષ્ઠ પ્રયાસો માટે, TypeScript સત્તાવાર દસ્તાવેજીકરણમાંથી સંદર્ભો લેવામાં આવ્યા હતા. અહીં વધુ જાણો: TypeScript દસ્તાવેજીકરણ .